我正在尝试将试图连接到Rabbitmq服务器的Java应用程序停靠。我通过docker env变量传递了Rabbitmq Url,并使用
读取了相同的urlSystem.getenv( “RABBITMQ_URL”)
,但它是空的。我正在阅读docker env变量的方式有什么问题吗?这是我的Docker创建命令:
docker service create --name xxx --env RABBITMQ_URL = amqp:// rabbitmq:xxxx --network msgq --with-registry-auth $ {imageName}
答案 0 :(得分:2)
这很奇怪但是,重新启动docker容器对我来说很好。事实证明,当我使用“--network”更新网络连接时,我必须重新启动容器。感谢
答案 1 :(得分:0)
似乎对我来说工作得很好。请参阅以下内容:
>> cat Dockerfile
FROM java
COPY Test.java /Test.java
RUN javac Test.java
CMD java Test
>> cat Test.java
class Test {
public static void main(String[] j) {
System.out.println(System.getenv("RABBITMQ_URL"));
while (true) {}
}
}
>> docker build -t testj .
Sending build context to Docker daemon 6.656kB
Step 1/4 : FROM java
---> d23bdf5b1b1b
Step 2/4 : COPY Test.java /Test.java
---> Using cache
---> 2333685c6488
Step 3/4 : RUN javac Test.java
---> Using cache
---> 8d1e98d604b9
Step 4/4 : CMD java Test
---> Using cache
---> 6f9625f04966
Successfully built 6f9625f04966
Successfully tagged testj:latest
>> docker service create --name xxx --env RABBITMQ_URL=amqp://rabbitmq:xxxx --detach testj
937rbfctrds0z1mhpk1e7dlja
>> docker service logs xxx
xxx.1.acv6mqqy38pf@moby | amqp://rabbitmq:xxxx
>>