Jenkins 管道:docker 找不到 Maven docker 图像
Jenkins Pipeline : docker not found with Maven docker image
我有一个 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
似乎 docker 守护程序在我提供了一个 maven docker 图像后不可见。
我确实通过在我的 Maven docker 图像中添加 docker 代理解决了这个问题
pipeline {
agent any
stages {
stage('build Dockerfile') {
steps {
sh '''echo "FROM maven:3-alpine
RUN apk add --update docker openrc
RUN rc-update add docker boot" >/var/lib/jenkins/workspace/Dockerfile'''
}
}
stage('run Dockerfile') {
agent{
dockerfile {
filename '/var/lib/jenkins/workspace/Dockerfile'
args '--user root -v $HOME/.m2:/root/.m2 -v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps {
sh 'docker version'
sh 'mvn -version'
sh 'java -version'
}
}
}
}
我有一个 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
似乎 docker 守护程序在我提供了一个 maven docker 图像后不可见。
我确实通过在我的 Maven docker 图像中添加 docker 代理解决了这个问题
pipeline {
agent any
stages {
stage('build Dockerfile') {
steps {
sh '''echo "FROM maven:3-alpine
RUN apk add --update docker openrc
RUN rc-update add docker boot" >/var/lib/jenkins/workspace/Dockerfile'''
}
}
stage('run Dockerfile') {
agent{
dockerfile {
filename '/var/lib/jenkins/workspace/Dockerfile'
args '--user root -v $HOME/.m2:/root/.m2 -v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps {
sh 'docker version'
sh 'mvn -version'
sh 'java -version'
}
}
}
}