我正在从jenkins的官方镜像构建一个自定义的docker镜像。我想将maven安装到镜像中,并将maven的配置文件外部化。但我失败了。容器启动后,有一个空的/etc/maven
目录。我认为这可能是一个许可问题,但经过半天的研究,我无法解决它。这是我的docker文件:
FROM jenkins
USER root
RUN apt-get update && apt-get install -y maven
然后我在docker-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
,但都没有效果。
发布于 2016-03-08 12:37:12
将主机文件夹装载到docker容器时,它会覆盖容器文件夹。由于maven配置文件是在镜像构建期间创建的,而卷是在运行时挂载的,因此卷将覆盖conf文件。
由于maven用户设置会覆盖全局设置(请参阅https://maven.apache.org/settings.html),因此您可以尝试挂载用户设置文件夹。
https://stackoverflow.com/questions/35858740
复制相似问题