1

请我阅读似乎解决这个问题的帖子,但我仍然无法解决我的问题。我在 docker 容器内运行的 Spring Boot 应用程序中有一个默认的 application.properties,但是我想添加外部 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,请问我该如何克服这个挑战?

4

3 回答 3

3

您指的是 dockerENTRYPOINT命令中的主机路径。只需参考容器特定路径:

入口点 [ "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

于 2018-04-10T10:50:04.220 回答
2

在您的入口点传递另一个参数

-Dspring.config.location=<your custom property file location>

于 2018-04-10T11:32:52.203 回答
1

您可以尝试提供文件路径而不是类路径。

 "--spring.config.location=file:${configDirectory}/application.yml"

您可以使用 spring cloud config 项目。

https://spring.io/guides/gs/centralized-configuration/

于 2018-04-10T10:56:25.790 回答