我在这样的 docker 容器中使用 Jenkins:
FROM jenkins/jenkins:2.301
USER root
RUN rm /etc/apt/sources.list.d/github_git-lfs.list
RUN apt-get update && apt-get install curl -y
RUN curl -fsSL https://get.docker.com | sh
RUN groupmod -g 998 docker
RUN usermod -a -G docker jenkins
USER jenkins
我使用 docker compose 和这些卷运行:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/jenkins:/var/jenkins_home
当我的管道工作时,我可以看到创建了一个新容器,当我去 jenkins 容器时,docker 命令工作,但我的管道说:
line 1: docker: not found
这是我的 jenkinsfile 的摘录:
pipeline {
agent {
docker {
image 'node:14.15.5-alpine3.13'
args '-p 3000:3000'
}
}
environment {
CI = 'true'
REGISTRY = 'my_repo/my_project'
REGISTRY_CREDENTIAL = 'MY_CREDENTIAL'
DOCKER_IMAGE = ''
}
stages {
stage('Test') {
steps {
sh 'npm i'
sh 'npm run lint'
sh 'npm run type-check'
sh 'npm run test'
}
}
stage('Build') {
steps {
sh 'npm run build'
script {
dockerImage = docker.build registry + ":$BUILD_NUMBER"
}
}
}
stage('Deliver') {
steps {
script {
docker.withRegistry( '', registryCredential ) {
dockerImage.push()
}
}
}
}
stage('Cleaning') {
steps {
sh "docker rmi $registry:$BUILD_NUMBER"
}
}
}
}
我知道有类似的话题,但要么我不明白,要么我没有完全相同的问题
有人可以帮我吗?