【发布时间】:2016-09-15 01:10:54
【问题描述】:
我无法配置 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"]
在我的主机中,我有这个属性文件的路径:/var/gpm/config/application.properties
但是,不工作。
更新
我通过以下方式更改 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
【问题讨论】:
-
你有没有在运行时猛击容器并检查文件是否在卷中可用?
-
你好!挂载的文件夹,但是文件夹是空的,看不到application.properties文件。
-
使用 docker inspect
命令并检查 Mounts -
我更新了这篇文章,inspect 命令显示:"Mounts": [ { "Source": "/opt/gpm/config/application.properties", "Destination": "/conf/application .properties", "Mode": "", "RW": true }
-
ls -la /conf/ 你在哪里执行的?所以它似乎可用,你之前说文件夹是空的
标签: java docker spring-boot dockerfile