使用 Docker Jenkins 容器管道构建 Docker 映像时未找到 Docker

新手上路,请多包涵

我有一个 Jenkins 作为 docker 容器运行,现在我想使用管道构建一个 Docker 映像,但 Jenkins 容器总是告诉 Docker not found。

 [simple-tdd-pipeline] Running shell script
+ docker build -t simple-tdd .
/var/jenkins_home/workspace/simple-tdd-pipeline@tmp/durable-
ebc35179/script.sh: 2: /var/jenkins_home/workspace/simple-tdd-
pipeline@tmp/durable-ebc35179/script.sh: docker: not found

这是我运行 Jenkins 映像的方式:

 docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v
/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock
jenkins

而Jenkins镜像的DockerFile是: https ://github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dockerfile

原文由 kitko112 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

您缺少 docker 客户端。在 Dockerfile 中安装它:

 RUN curl -fsSLO https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz \
  && tar xzvf docker-17.04.0-ce.tgz \
  && mv docker/docker /usr/local/bin \
  && rm -r docker docker-17.04.0-ce.tgz

资源

原文由 Robert 发布,翻译遵循 CC BY-SA 3.0 许可协议

在您的 Jenkins 界面中,转到 “管理 Jenkins/全局工具配置”

然后向下滚动到 Docker Installations 并单击 “Add Docker” 。给它起一个名字,比如 “myDocker”

确保选中 “自动安装” 复选框。单击 “添加安装程序” 并选择 “从 docker.com 下载” 。在 Docker 版本中保留“最新”。确保单击“保存”。

在此处输入图像描述

在运行任何 docker 命令之前,在 Jenkinsfile 中添加以下阶段:

  stage('Initialize'){
        def dockerHome = tool 'myDocker'
        env.PATH = "${dockerHome}/bin:${env.PATH}"
    }

原文由 Harry 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题