0
我創建了我的Dockerfile,我想創建一個簡單的Spring Boot Webapp監聽端口。彈簧系統參數被忽略
FROM java:8
VOLUME /tmp
ENV port=123
#WORKDIR /workdir
ADD /target/docker-test-0.1.jar dockertest.jar
EXPOSE $port
RUN bash -c 'touch /dockertest.jar'
#ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Dserver.port=$port","-jar","/dockertest.jar"]
ENTRYPOINT java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port
我的webapps application.properties定義如下:
server.port=666
開始通過的IntelliJ泊塢窗插件我的搬運工容器我給它的參數:
port=555
運行docker inspect bootapp
(bootapp是容器名稱)給我關於th的信息E端口,環境變量和入口點:
"Entrypoint" : [ "/bin/sh", "-c", "java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port" ],
"Env" : [ "port=555", ...],
,春靴日誌這樣說:
2017-08-30 20:10:07.709 INFO 5 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 666 (http)
所以在application.properties
定義的端口不是由運行參數覆蓋。
這告訴我,EXPOSE=$port
實際上能夠解決,但ENTRYPOINT中的變量不是。
我已經變的入口點到外殼形式,但這並沒有幫助,你可以看到通過我的Dockerfile
你確定的環境變量沒有被解決,如果你改變你的入口點線是什麼輸出:'入口點回聲java -jar /dockertest.jar -Djava.security.egd = file:/ dev /./ urandom -Dserver.port = $ port' – BMitch
你是對的。我只知道jvm忽略了我的'-Dserver.port'運行時參數。 – xetra11