【发布时间】:2020-09-10 10:27:54
【问题描述】:
我有一个运行良好的 Jenkins 管道,但它取决于 JDK 和 maven 安装的工具。过去很少有这些 JDK 和 maven 工具的名称被更改的情况(例如 Maven 3.6.2 -> Maven 3.6.3 并导致我的管道失败。
stage ("build") {
withMaven(jdk: 'Java SE 8u221', maven: 'Maven 3.6.3', tempBinDir: '') {
sh 'mvn clean package jib:dockerBuild verify'
}
}
我希望我的管道独立于安装的工具。所以我重写了我的 Jenkins 管道,如下所示,以提供 maven 的 docker 映像(因为 JDK 与它捆绑在一起)
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2'
}
}
stages {
stage('Checkout') {
steps {
git branch: "master", url: "repo url", credentialsId: 'id'
}
}
stage ("build") {
steps {
sh 'mvn clean package jib:dockerBuild verify'
}
}
}
}
但现在我收到一个错误Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild (default-cli) : Build to Docker daemon failed, perhaps you should make sure Docker is installed and you have correct privileges to run it
在我提供了一个 maven docker 镜像后,docker daemon 似乎不可见。
【问题讨论】:
-
嗨 Tarun..,您正在尝试使用 maven 工具构建 docker 映像。为此,您需要在您的 docker 镜像
maven:3-alpine中安装一个 docker-client,并且应该传递一个指向REMOTE_DOCKER_HOST的 env,以便它可以与守护进程对话并根据需要构建镜像。