2016-03-08 23 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/。您可以将配置保存在可保存和导出的数据容器中。 –

相关问题