我在本地计算机的 docker 容器中安装了 Jenkins。 我可以将它移至公司的 CI 服务器并重新使用工作项目吗?
我在本地电脑上试过了
docker commit
docker push
在 CI 服务器上
docker pull
docker run
但是,当我在 CI 服务器上运行 Jenkins 时,Jenkins 被初始化了。
如何使用 Docker 获取所有配置和作业项?
最佳答案
如 commit command 的文档中所述
The commit operation will not include any data contained in volumes mounted inside the container.
jenkins home 被安装为一个卷,因此当您提交容器时,jenkins home 不会被提交。因此,当前正在运行的本地容器上的所有作业配置都不会成为提交镜像的一部分。
您的问题归结为如何将您机器上的 jenkins_home 卷迁移到另一台机器。此问题已解决,您可以找到解决方案here .
不过,我会建议一种更好、更具可扩展性的方法,特别是针对 jenkins。第一种方法的问题在于,每当您想在新机器上启动类似的 jenkins 实例时,都需要进行一些手动干预。
解决方法如下:
- 提交当前正在运行的容器
- 使用以下命令复制容器内的作业配置:
docker cp/var/jenkins_home/jobs ./jobs
。这会将作业配置从正在运行的容器复制到您的机器中。记得清理构建文件夹 - 创建一个继承自提交镜像的 Dockerfile,并将作业配置复制到 jenkins_home 下。
- 推送镜像,您应该有一个可以拉取的镜像,并且所有作业都已正确配置
dockerfile 看起来像这样:
FROM <commited-container>
COPY jobs/* /var/jenkins_home/jobs/
关于docker - 我可以将包含 Jenkins 设置的 docker 容器移动到其他服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860485/