我有一个带有以下Dockerfile的Spring启动应用程序。
FROM docker.com/base/jdk1.8:latest
MAINTAINER Application Engineering [ https://docker.com/ ]
RUN mkdir -p /opt/docker/svc
COPY application/weather-service.war /opt/docker/svc/
CMD java -jar /opt/docker/svc/weather-service.war --spring.config.location=file:/conf/application.properties -Dlogging.config=/conf/logback.xml
我的应用程序需要20个不同的属性。我在application.properties中有10个属性,并希望通过env变量传递其余的属性。 application.properties文件中的10个属性工作正常,但是env变量未按预期工作。
另外,是否可以像-Dtest.name = test一样使用“-D”来传递它们?
我们可以混合使用吗?
由于
答案 0 :(得分:0)
使用docker-compose添加你的env var for runtime
api:
image: api
build:
context: .
dockerfile: Dockerfile
environment:
- TEST=test
ports:
- 5000:5000
volumes:
- .:/app
working_dir: /app
entrypoint: /bin/bash -c "java -jar /opt/docker/svc/weather-service.war --spring.config.location=file:/conf/application.properties -Dlogging.config=/conf/logback.xml"
答案 1 :(得分:0)
更简单的方法是使用环境文件。 java属性文件通常采用类似的格式。如果没有,您必须进行一些调整以避免重复。
private void ResetDataPatient() {
imgBox.Image.Dispose();
imgBox.Image = Properties.Resources.defaultpicture;
if (xrayPic != null)
xrayPic.Dispose();
xrayPic = null;
if (rootPic != null)
rootPic.Dispose();
rootPic = null;
if (tmppic != null)
tmppic.Dispose();
tmppic = null;
if (tmppicCheck != null)
tmppicCheck.Dispose();
tmppicCheck = null;
if (originalPic != null)
originalPic.Dispose();
originalPic = null;
if (PatienData != null) {
PatienData.Clear();
PatienData.Dispose();
PatienData = null;
}
}