2016-05-18 167 views
3

我無法配置Dockerfile以使用Spring Boot的外部屬性文件。這是我的Dockerfile:使用Spring Boot和Docker的外部屬性文件

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

但是,沒有工作。

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 

但是,該文件是把它就像一個文件夾:

[email protected]:/# 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 
+0

運行時,你有沒有撞壞放入容器,並檢查文件是否在卷中可用? – Shibashis

+0

嗨!文件夾已掛載,但文件夾爲空,無法看到application.properties文件。 –

+0

使用docker inspect 命令並檢查掛載 – Shibashis

回答

0

最後,問題是關於要在Docker容器中裝入文件的權限。如果在主機中找不到原始文件,Docker會創建一個目錄。

感謝@Shibashis的幫助。

0

我想你只需要將卷掛載到conf文件夾,例如

搬運工運行-d -p 8080:8080 -v的/ opt /加侖/配置:/ conf目錄--name GPM GPM的Web 1.0

相關問題