Java 如何外部化docker容器文件
我正在从詹金斯的官方形象建立一个定制的码头工人形象。我想将maven安装到映像中,并将maven的配置文件外部化。但我失败了。容器启动后,有一个空的Java 如何外部化docker容器文件,java,maven,jenkins,docker,docker-compose,Java,Maven,Jenkins,Docker,Docker Compose,我正在从詹金斯的官方形象建立一个定制的码头工人形象。我想将maven安装到映像中,并将maven的配置文件外部化。但我失败了。容器启动后,有一个空的/etc/maven目录。我认为这可能是一个许可问题,但经过半天的研究,我无法解决它。 这是我的docker文件: FROM jenkins USER root RUN apt-get update && apt-get install -y maven 我当时在docker-compose.yml中尝试的是: jenkins:
/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
,但都没有效果。将主机文件夹装载到docker容器时,它会覆盖容器文件夹。由于maven配置文件是在映像构建期间创建的,但卷是在运行时装入的,所以卷将覆盖conf文件
由于maven用户设置会覆盖全局设置(请参阅),因此您可以尝试挂载用户设置文件夹。谢谢您的回答。是否有将
/etc/foo/bar
配置文件外部化的常见做法?Docker给出了管理容器数据的方法,我想知道如何以dockerlize的方式解决这个问题,一种更灵活的方式。您需要的是数据卷容器
,请参阅。然后,可以将配置保存在数据卷容器中,该容器可以保存和导出。