请您阅读似乎解决这个问题的帖子,但我仍然无法解决我的问题。我在我的spring boot应用程序中有一个默认的application.properties在docker容器中运行,但我想添加外部application.properties。
这是我的泊坞文件:
FROM tomcat:8-alpine
COPY target/demoapp.war /usr/local/tomcat/webapps/demo.war
RUN sh -c 'touch /usr/local/tomcat/webapps/demo.war'
EXPOSE 8080
ENTRYPOINT [ "sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -jar /usr/local/tomcat/webapps/demo.war", "--spring.config.location=C:/Users/650/Documents/Workplace/application.properties"]
我用以下代码构建文件:
docker build . -t imagename
我使用以下命令运行spring boot docker容器:
docker run -p 8080:8080 -v C:/Users/650/Documents/Workplace/application.properties:/config/application.properties --name demosirs --link postgres-
standalone:postgres -d imagename
容器仍然没有找到我的外部application.properties,请问我该如何克服这个挑战?
答案 0 :(得分:1)
您指的是docker ENTRYPOINT
命令中的主机路径。只需参考特定于容器的路径:
ENTRYPOINT [“sh”,“ - c”,“java -Djava.security.egd = file:/ dev /./ urandom -jar /usr/local/tomcat/webapps/demo.war”,“ - spring.config.location = <强> /config/application.properties 强>“]
而且,我注意到,您正在使用文件作为-v
docker run
参数的值。所以将其更改为相应的目录:
-v C:/ Users / 650 / Documents / Workplace:/ config
答案 1 :(得分:0)
您可以尝试提供文件路径而不是类路径。
"--spring.config.location=file:${configDirectory}/application.yml"
您可以使用spring cloud配置项目。
答案 2 :(得分:0)
在你的入口点传递另一个参数
-Dspring.config.location=<your custom property file location>