我把开发好的biz往生产服务器上部署的时候,发现无论怎么配置,biz容器里的环境变量总是dev,为啥

Blade 未结 3 897
菲哥
菲哥 剑圣 2022-10-14 11:36

一、该问题的重现步骤是什么?

  1. 我所有的biz微服务是在一个目录下,使用docker-compose部署的,如图:

  2. 1.png

  3. 2.png

3.png


4.png

docker-compose config,可以查看生效的情况,如下:

6.png



2. 8.png

3.8.png

10.png

launcher文件中我是这样配的,也尝试过全部注释,但是都没用,始终如下图:

5.png

日志如下:

[超长消息]BladeX 2.9..pdf

二、你期待的结果是什么?实际看到的又是什么?


我主要想知道:

(1)bladex对于biz工程,配置加载的判断逻辑在哪里?核心逻辑是怎么样的。

(2)我整个配置过程,究竟为何biz的微服务指定Profile=test为何不成功,问题出在哪里?


麻烦翼总指点迷津。。。。谢谢。



三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

3条回答
  • 2022-10-18 01:18

    按理说dockerFile配置了--spring.profiles.active=test,不用config配置都可以直接读取到test环境了。

    你先用jar包的形式跑一下命令看看 java -jar app.jar --spring.profiles.active=test,如果这样也不行,你把jar包发我邮箱看看 bladejava@qq.com。

    如果jar可以,docker不行,你再看下bladex自带的服务,是否能启动到test环境。


    环境变量的判断逻辑如下

    image.png

    0 讨论(0)
  • 2022-10-20 10:58

    test环境.png

    我登录到容器里面,执行:java -jar app.jar --spring.profiles.active=test,发现环境变量是生效的。


    我进到生产环境的服务器里,查看bladex的启动日志,发现走得也是test,如图:

    1111.png

    在测试过程中,发现:

    4444.png

    究竟应该咋写呢?


    我还发现配置在command:下的参数全部都不起作用ELK的地址也无法配置生效。奇怪。。。


    进一步查询发现,好像这个值有问题。


    3333.png


    4444.png


    dockerfile里改为:


    ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]


    就可以了。



    0 讨论(0)
  • 2022-11-15 20:50

    请问楼主,到底怎么解决呢。

    0 讨论(0)
提交回复