2016-03-08 146 views
0

我正在從詹金斯官方圖像構建定製碼頭圖像。我想將Maven安裝到圖像並擴展maven的配置文件。但我失敗了。容器啓動後,有一個空的/etc/maven目錄。我認爲這可能是一個許可問題,但經過半天的研究後我無法解決。 這是我的搬運工文件:如何外化碼頭容器文件

FROM jenkins 
USER root 
RUN apt-get update && apt-get install -y maven 

我在泊塢窗,compose.yml然後試了一下:

jenkins: 
    build: /docker/jenkins/ 
    volumes: 
     - /srv/docker/jenkins:/var/jenkins_home 
     - /srv/docker/maven/conf:/etc/maven:rw # the rw flag has no effect! 
     - /srv/docker/maven/repository/:/m2:rw 

我試圖刪除/srv/docker/maven目錄並允許在容器上的第一次創建它它運行。

然後,我嘗試在RUN apt-get update && apt-get install -y maven指令之前或之後向dockerfile添加VOLUME /etc/maven指令。沒用。

我也試過chmod ugo+wx /srv/docker/maven但沒有任何影響。

回答

0

將主機文件夾裝入泊塢窗容器時,它將覆蓋容器文件夾。由於maven配置文件是在映像構建期間創建的,但是卷在運行時掛載,因此卷將覆蓋conf文件。

由於maven用戶設置會覆蓋全局設置(請參閱https://maven.apache.org/settings.html),您可以嘗試裝入用戶設置文件夾。

+0

感謝您的回答。有沒有普遍的做法來外化'/ etc/foo/bar'的配置文件? Docker提供了管理容器數據的方式,我想知道如何以dockerlize的方式解決這個問題,這是一種更靈活的方式。 –

+0

您需要的是'數據容器',請參閱https://docs.docker.com/engine/userguide/containers/dockervolumes/。您可以將配置保存在可保存和導出的數據容器中。 –

相關問題