如何在基于dockerfile的容器中运行Jenkins管道?

时间:2020-04-25 17:06:04

标签: docker jenkins jenkins-pipeline jenkins-plugins

我试图根据存储在SCM中的dockerfile在容器内运行管道。

下面是我的管道的开头:

pipeline {
    agent { 
        dockerfile {
            dir '002_CICD'
        }

    }
....

当我尝试运行管道时,出现以下错误:

   + docker build -t 66dae53280bc29614c69b505e48424c25e689b91 -f 002_CICD/Dockerfile 002_CICD
/var/jenkins_home/workspace/AMP_app_docker_pipe@tmp/durable-cbf3977b/script.sh: 1:
 /var/jenkins_home/workspace/AMP_app_docker_pipe@tmp/durable-cbf3977b/script.sh: docker: not found

要运行docker容器,我安装了以下Jenkins插件:

  1. Docker插件
  2. docker-buil-step
  3. Docker Pipeline
  4. Docker Commons插件
  5. Docker API插件

我还在远程服务器上启用了docker API,连接看起来还不错。

我想念什么? 非常感谢

1 个答案:

答案 0 :(得分:1)

您要实现的是docker设置中的docker(相当多用于CI流程)

由于您的詹金斯人在容器中运行,因此需要在Dockerfile中安装一个docker(cli / client),因此找不到错误docker。

此docker客户端将使用主机的docker引擎执行所有操作

关于错误

无法通过unix:///var/run/docker.sock连接到Docker守护程序

如果jenkins用户无权访问主机/var/run/docker.sock,则会发生这种情况。检查此文件在主机上的权限以及与jenkins一起运行的用户的关联权限