【发布时间】:2024-01-16 04:15:01
【问题描述】:
我已经在我的机器上本地安装了 Jenkins。我从我的 github 存储库中提取了一些源代码,该存储库在根目录中有一个 Docker 文件。我想构建和 docker 映像并将其推送到 docker hub,但我的构建失败并显示以下消息...
docker build -f myapp-web:latest . \n
/Users/Shared/Jenkins/Home/workspace/MyApp@tmp/durable-ee9851e9/script.sh: line 1: docker: command not found
pipeline {
agent any
tools {
maven 'maven_3.6.1'
jdk 'jdk8'
}
stages {
stage('Build') {
steps {
withMaven(maven: 'maven_3.6.1', mavenSettingsConfig: '5d7a8237-6d6a-4189-a907-518900dc7755') {
sh "mvn clean install "
}
}
}
stage('Build Image') {
steps {
script {
sh 'docker build -f myapp-web:latest .'
}
}
}
stage('Deploy Image') {
steps {
withDockerRegistry([credentialsId: "docker-hub", url: ""]) {
sh 'docker push myapp-web:latest'
}
}
}
}
}
Docker 在我的本地机器上安装并运行,Jenkins 配置了以下插件 码头工人管道 Docker 插件
任何想法都非常感谢
【问题讨论】:
-
你有没有通过 jenkins 检查
$PATH的值?也许它不包括 docker 二进制文件所在的路径。 -
我还没有通过 Jenkins 设置 $PATH 变量...你说的是 Jenkins -> 管理 Jenkins -> 配置系统 -> 全局属性 -> 环境变量
-
Iv 将 environment{ PATH = "/usr/local/bin:$PATH" } 添加到脚本中,似乎已经解决了上述错误,但现在我得到“尝试连接时拒绝权限到 unix:///var/run/docker.sock: Post"的 Docker 守护进程套接字"
-
所以现在下一步是将用户 jenkins(或管道中使用的任何用户)添加到 docker 组,这样他就可以使用 docker 命令,使用
usermod -aG docker $USER -
非常感谢!好看吗???????
标签: docker jenkins-pipeline dockerhub