我已按照下一个指南https://hub.docker.com/r/iliyan/jenkins-ci-php/下载了与Jenkins一起使用的Docker镜像。
当我使用docker start CONTAINERNAME
命令启动容器时,我可以从localhost:8080访问Jenkins。
当我更改Jenkins配置并使用docker stop CONTAINERNAME
和docker start CONTAINERNAME
重新启动Jenkins时出现问题,我的Jenkins不包含我之前的任何配置更改。
如何坚持Jenkins配置?
答案 0 :(得分:5)
您需要将Jenkins配置作为卷安装,-v
标志将为您执行此操作。 (您可以忽略我示例中的--privileged
标志,除非您计划在jenkins docker图像中构建docker图像)
docker run --privileged --name='jenkins' -d -p 6999:8080 -p 50000:50000 -v /home/jan/jenkins:/var/jenkins_home jenkins:latest
-v
标记会将您的/var/jenkins_home
装在容器外/home/jan/jenkins
,并在重建之间维护。
--name
以便您有一个固定的容器名称来启动/停止它。
然后,下次要运行它时,只需调用
即可docker start jenkins
答案 1 :(得分:0)
我的理解是,初始化脚本
/sbin/tini -- /usr/local/bin/jenkins.sh
在启动时重置通过以下工具提供的文件夹中的jenkins配置 JENKINS_HOME env var, 是否已安装在docker vm外部。
但是可以使用以下方式将配置存储在github上 配置/“配置系统” /“ SCM同步配置” / Git 部分。
查看可能的详细配置here
答案 2 :(得分:0)
您可以使用此docker-compose文件:
version: '3.1'
services:
jenkins:
image: jenkins:latest
container_name: jenkins
restart: always
environment:
TZ: GMT
volumes:
- ./jenkins_host:/var/jenkins_home
ports:
- 8080:8080
tty: true
您只需要与主机文件夹共享.jenkins卷./jenkins_host:/var/jenkins_home
答案 3 :(得分:0)
除了显而易见的,比如运行参数来清除您应该禁用的图像之外,您还可以做一些事情:
使用 docker commit 并重用已提交的容器
使用 docker 卷将写入的部分挂载到本地文件系统
我最喜欢的:使用命令:
docker 容器重启容器名
根据您的需要,您可以选择一个。 例如,我在测试 jenkins 插件时使用后者,它将数据保留在里面。 后者的来源也对更新有用: https://jimkang.medium.com/how-to-start-a-new-jenkins-container-and-update-jenkins-with-docker-cf628aa495e9