我正在使用我继承的Jenkins安装。此安装已安装CloudBees Docker Custom Build Environment Plugin。我们认为这个插件在我们的构建配置中为我们提供了一个漂亮的 Build in Docker container 复选框。当我们使用此选项配置作业时,它看起来像(基于Jenkins控制台输出)Jenkins使用以下命令运行构建
Docker container 548ab230991a452af639deed5eccb304026105804b38194d98250583bd7bb83q started to host the build
[WIP-Tests] $ docker exec -t 548ab230991a452af639deed5eccb304026105804b38194d98250583bd7bb83q /bin/sh -xe /tmp/hudson7939624860798651072.sh
但是 - 我们发现这会导致/bin/sh
环境变量非常有限 - 包括$PATH
并不包含/bin
!所以
CloudBees Docker自定义构建环境插件如何设置其/bin/sh
环境。该用户是否可以通过UI进行配置(如果是,在哪里?)
看起来Jenkins正在使用docker exec
- 我认为意味着它必须(无形地)使用{{1}设置一个具有长时间运行进程的容器}。有没有人知道 CloudBees Docker自定义构建环境插件插件如何调用docker run
,如果用户可以管理?
答案 0 :(得分:1)
考虑到这个插件已被采用"我会推荐官方JENKINS/Docker Pipeline Plugin。
source code show very few recent commits。
但请勿忘记设置为/bin/sh
ENTRYPOINT ["/bin/sh", "-c"]
然后:
在将SCM签出到从属工作空间后运行docker容器,然后由于Docker 1.3中引入了
docker exec
,所有后来的构建命令都在容器中执行
这意味着你要拉动或构建/运行的图像必须有一个shell,以允许docker exec
在其中执行命令。