使用Spring Boot和Docker的外部属性文件

我无法configuration一个Dockerfile来使用Spring Boot的外部属性文件。 这是我的Dockerfile:

FROM java:8-jre VOLUME /tmp /var/gpm/config ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-cp","/var/gpm/config","-Dspring.config.location=classpath:application.properties","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

而在我的主机,我有这个path的属性文件:/var/gpm/config/application.properties

但是,不行。

UPDATE

我改变了Dockerfile:

 FROM java:8-jre VOLUME /tmp ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.config.location=file:/conf/application.properties"] 

并运行这个:

 docker run -d -p 8080:8080 -v /opt/gpm/config/application.properties:/conf/application.properties --name gpm gpm-web:1.0 

但是,该文件是像一个文件夹:

 root@b7349202b6d3:/# ls -la /conf/ total 8 drwxr-xr-x 3 root root 4096 May 18 16:43 . drwxr-xr-x 74 root root 4096 May 18 16:55 .. drwxr-sr-x 2 root staff 40 May 18 16:43 application.properties 

最后,问题是关于要在Docker容器中安装文件的权限。 如果在主机中找不到原始文件,Docker将创build一个目录。

感谢@Shibashis的帮助。

我想你只需要将卷挂载到conf文件夹,例如

docker run -d -p 8080:8080 -v / opt / gpm / config:/ conf –name gpm gpm-web:1.0