java - 如何在我的机器上的 docker 守护进程和 Jenkins 之间建立连接以执行 docker 命令?
问题描述
我的詹金斯文件:
pipeline {
agent any
stages {
stage('Initialize') {
steps {
script {
def dockerHome = tool 'myDocker'
env.PATH = "${dockerHome}/bin:${env.PATH}"
}
}
}
stage('Build') {
steps {
echo 'building backend...'
withGradle() {
sh './gradlew build'
}
}
}
stage('Test') {
steps {
echo 'testing'
}
}
stage('Deploy') {
steps {
echo 'deploying'
sh './gradlew jibBuildTar'
sh 'docker load --input build/image.tar'
}
}
}
}
Jenkins 不允许我使用 docker 命令,因为 docker 守护程序没有运行。如何将我的守护进程连接到詹金斯?我在 jenkins 上也安装了 docker 和 docker 管道插件。
解决方案
讨论总结:
默认情况下,Jenkins 在master
节点上执行。Docker 必须安装在master
节点上,并且需要允许 Jenkins 用户执行 docker 命令(应添加到 docker 组)。
推荐阅读
- node.js - 如何在此路由路径中获取此帖子参数 ID?
- spring - 支持多种日期格式的 Kafka JsonDeserializer
- sas - Sas如何在显示器中有2个byvar
- c - 与“for循环”输出混淆
- java - 如何与 bin、conf 等少数目录一起构建战争
- javascript - 无法在 Angular 中访问对象属性
- r - 在 Rscript 中使用从 ShinyApp 获取的变量
- sql-server - Azure 数据同步可以用作主到主数据库复制吗?
- php - 我的前端不会与我的 Heroku 后端交互
- python - guvectorize 在 nopython 模式下不解析类型