Jenkins CloudBees Docker Build Plugin如何设置其Shell路径

问题描述 投票:2回答:1

我正在使用我继承的Jenkins安装。此安装已安装CloudBees Docker Custom Build Environment Plugin。我们认为这个插件在我们的构建配置中为Docker容器复选框提供了一个漂亮的Build。当我们使用此选项配置作业时,它看起来像(基于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!所以

  1. CloudBees Docker自定义构建环境插件如何设置其/bin/sh环境。此用户是否可以通过UI进行配置(如果是,在哪里?)
  2. 看起来Jenkins正在使用docker exec - 我认为这意味着它必须(无形地)使用docker run设置一个具有长时间运行过程的容器。难道没有人知道CloudBees Docker自定义构建环境插件插件如何调用docker run,如果这是用户可管理的?
docker jenkins
1个回答
1
投票

考虑到这个插件是“适合采用”,我会推荐官方的JENKINS/Docker Pipeline Plugin

source code show very few recent commits

但不要忘记任何容器has a default entrypoint设置为/bin/sh

ENTRYPOINT ["/bin/sh", "-c"]

然后:

https://wiki.jenkins.io/download/attachments/78676506/Capture%20d%E2%80%99%C3%A9cran%202015-06-25%20%C3%A0%2018.07.49.png?version=1&modificationDate=1435248491000&api=v2

在SCM检出到从属工作空间后运行docker容器,然后由于Docker 1.3中引入的docker exec,所有后来的构建命令都在容器内执行

这意味着您将要拉动或构建/运行的图像必须具有shell,以允许docker exec在其中执行命令。

© www.soinside.com 2019 - 2024. All rights reserved.