我在本地计算机的docker容器中安装了Jenkins。 我可以将其移至公司的CI服务器并重新使用工作项吗?
我在本地计算机上试过这个
React
在CI服务器上
docker commit
docker push
但是,当我在CI服务器上运行Jenkins时,Jenkins已初始化。
如何使用Docker获取所有配置和作业项?
答案 0 :(得分:1)
您需要检查Jenkins映像(hub.docker.com/r/jenkins/jenkins/
)在本地计算机上的启动方式:如果它正在挂载本地卷,则该卷应包含JENKINS_HOME
所有作业配置和插件
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
您也需要导出该卷,而不仅仅是图像 请参阅" Docker & Jenkins: Data that Persists ",使用you can then export/import的数据卷容器。
答案 1 :(得分:1)
提交操作不包含卷中包含的任何数据 安装在容器内。
jenkins home作为卷安装,因此当您提交容器时,jenkins home将不会被提交。因此,当前在运行的本地容器上的所有作业配置都不会是提交映像的一部分。
您的问题减少了如何将计算机上的jenkins_home卷迁移到另一台计算机。此问题已解决,您可以找到解决方案here。
我建议采用更好,更具伸缩性的方法,特别是对于詹金斯。第一种方法的问题在于,只要您想在新机器上启动类似的jenkins实例,就需要进行一些安静的手动干预。
解决方案如下:
docker cp /var/jenkins_home/jobs ./jobs
。这会将作业配置从正在运行的容器复制到您的计算机中。请记住清理构建文件夹dockerfile看起来像:
FROM <commited-container>
COPY jobs/* /var/jenkins_home/jobs/