jenkins - docker在官方的 Jenkins 容器中构建

标签 jenkins docker build continuous-integration ansible

我在docker上运行官方的Jenkins容器。我需要构建docker镜像作为成功构建的后 Action ,但是Jenkins容器没有docker二进制文件。

我看到几个选择,首先是从官方镜像派生我自己的Jenkins容器,并使用docker binary。第二种选择是将专用的Jenkins从站与docker和其他必要的运行时一起使用。第三种选择是为Jenkins服务器配置ansible。我想在容器上运行所有内容,因为它是干净,简单且易于重复的。

您如何解决这个问题?从长远来看,哪种方法更好?为什么?我的最高优先级是能够使用单个ansible命令配置,配置和引导整个CI基础结构。此外,已构建的docker容器将被推送到注册表等,因此组件之间的连接性应该以最小的复杂性或手动配置为最佳。

最佳答案

在容器中安装docker不是一个好主意。

related article

但是,您可以通过安装docker socket来访问在主机上运行的docker守护进程。
它应该可以很好地用于测试目的,但是在生产模式下不要这样运行,因为它会带来安全问题。

related article

您当然可以找到一个更清洁的解决方案,直接从您的主机观察Jenkins容器的退出状态来管理您的部署/构建过程。

关于jenkins - docker在官方的 Jenkins 容器中构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531850/

相关文章:

docker - 将参数传递给 docker compose

version-control - Jenkins 我如何上传文本文件并将其用作参数

build - 如何从源代码安装Docker?

iphone - Cocos2d-x 项目的第二次重建开始出现错误 'Xcode cannor run using selected device'

java.lang.ClassCastException : org. hibernate.ejb.HibernatePersistence 无法转换为 WebLogic 中的 javax.persistence.spi.PersistenceProvider

java - 如果出现 SurefireBooterForkException,如何使构建失败?

Jenkins 更改构建历史时间戳

mysql - 如何连接到 mysql 并在 Jenkins 自由式作业中传递凭据

amazon-web-services - 如何将 AWS IAM 角色传递给 docker-in-docker 容器

docker - 使用默认值时访问 COMPOSE_PROJECT_NAME