我有一套春季启动应用程序,我想打包为docker容器。 我使用以下Dockerfile为其中一个服务创建容器:
FROM java:8
VOLUME /tmp
ADD myservice.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
在内部,服务访问一些环境属性,例如:
@Value("${my.test.param:default}")
String testParam;
.
.
.
logger.info("param value is = "+testParam);
现在,我希望能够通过docker run
命令行覆盖此设置,如此
docker run -p 8080:8080 -e my.test.param=changed mygroup/myservice:0.0.1
不幸的是,这似乎不起作用。我一直看到参数my.test.param
的默认值。
我搜索了在-e
行末尾自动添加所有ENTRYPOINT
参数的方法,但未找到任何参数。对此有一些通用的解决方案吗?