0
ポートでリッスンしている簡単なスプリングブートWebアプリケーションを作成したい場所にDockerfileを作成しました。スプリングシステムパラメータが無視されています
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は、次のように定義しています
のIntelliJドッカープラグインを経由して私のドッキングウィンドウコンテナを開始server.port=666
私はそれを、パラメータを与える:
docker inspect bootapp
を実行
port=555
(bootappはコンテナーの名前です) 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の変数は解決されていないことを示しています。
私はすでにフォームをシェルにENTRYPOINTを変更していますが、システム変数は、Javaの実行コマンドで間違った場所にいた私のDockerfile
は、あなたがあなたのエントリポイントの行を変更した場合、それに出力を何、あなたのenv varが解決されていないよろしいですjava -jar /dockertest.jar -Djava.security.egd = file:/ dev /./ urandom -Dserver.port = $ port' – BMitch
あなたはそうです。私は、jvmが '-Dserver.port'ランタイムパラメータを無視していることを知りました。 – xetra11