詹金斯管道:找不到docker

Tou*_*ifa 3 jenkins jenkins-plugins docker docker-compose jenkins-pipeline

我想用 jenkins 创建一个 docker 镜像,但找不到 docker

如何将 jenkins 添加到 Windows 上的 docker groupe ?我尝试添加 docker 插件但没有成功

这是我的管道

pipeline {
    agent any
    options { buildDiscarder(logRotator(numToKeepStr:'5'))}
    environment {DOCKERHUB_CREDENTIALS = credentials('tfkben-dockerhub')}
    stages {
            stage('build'){  steps {  sh 'docker build -t tfkben/ben:latest .' }  }
            stage('Login'){  steps {  sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin ' }}
            stage('Push'){  steps {  sh 'docker push tfkben/ben:latest'}   }                                 
         }                           
            post { always { sh 'docker logout' }}
}
Run Code Online (Sandbox Code Playgroud)

我的 Dockerfile :

FROM python:3.11-rc-bullseye

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

CMD [ "python3", "manage.py", "runserver", "0.0.0.0:8000"]
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

  • docker build -t tfkben/ben:latest 。/var/jenkins_home/workspace/dockerhub-auth_master@tmp/durable-d7adec4b/script.sh:1:docker:找不到

Jof*_*y K 6

如果您尝试在容器内运行 Jenkins:

docker run -u 0 --privileged --name jenkins -d -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
Run Code Online (Sandbox Code Playgroud)

当然,$(which docker)如果您的主机无法识别该命令,您可以直接替换为您的 docker 路径。

您应该能够在管道内运行 docker 命令。