docker - 如何在 Jenkins 中正确安装 docker?
问题描述
我正在jenkins/jenkins
从 dockerhub 运行图像,我已经安装了 docker 插件,仍然无法在管道中找到 docker,我缺少什么
pipeline {
agent any
stages {
stage('Running') {
agent {
docker {
image 'node:14-alpine'
}
}
steps {
echo 'preparing the flow'
}
}
stage('Build') {
agent {
docker {
image 'node:14-alpine'
}
}
steps {
sh """
npm install
"""
}
}
}
}
/var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-5bf3a454/script.sh: 1: /var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-5bf3a454/script.sh: docker: not found
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . hub.docker.com/node:14-alpine
/var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-dea9bcb7/script.sh: 1: /var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-dea9bcb7/script.sh: docker: not found
[Pipeline] isUnix
[Pipeline] sh
+ docker pull hub.docker.com/node:14-alpine
/var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-b25ea3a8/script.sh: 1: /var/jenkins_home/workspace/multibranch_PR-1@2@tmp/durable-b25ea3a8/script.sh: docker: not found
解决方案
该插件只是一个实用层,用于从管道中使用 docker,它不安装 docker,仍然需要访问 docker 套接字。
通常有两种方法可以实现这一点。在 jenkins 容器内安装 docker(使用 apt)或在容器内安装主机的 docker 套接字。对于后者,你可以按照这个
推荐阅读
- c - 覆盖“已定义”关键字的 C 预处理器参数括号
- javascript - 为什么 Input.dispatchMouseEvent 不调度事件?
- apache - 无需手动输入凭据即可进行 SSO 身份验证
- java - Maven 在某些组中运行测试
- docusignapi - Docusign - 流 - REST API
- spring-boot - 无法读取excel文件中的汉字
- ios - 如何在 cordova-plugin-firebase 中删除 UIWebView 代码
- java - “控制变量“i”已修改”
- ruby-on-rails - nil:NilClass 的未定义方法“upvote_by”
- java - Selenium 找不到子元素