gpt4 book ai didi

Jenkins 管道内未找到 docker

转载 作者:行者123 更新时间:2023-12-03 08:10:40 30 4
gpt4 key购买 nike

我在我的 Linux 机器上安装了 jenkins,并将其连接到我的 kubernetes 集群。

我已经在jenkins中安装了dockerdocker-pipeline插件,它们可以在/var/lib/jenkins/plugins下找到:

docker-build-step
docker-build-step.jpi
docker-commons
docker-commons.jpi
docker-java-api
docker-java-api.jpi
docker-plugin
docker-plugin.jpi
docker-workflow
docker-workflow.jpi

并在全局工具配置中进行配置:

enter image description here

但是,当我在管道内运行 docker.build 甚至 sh 'docker ps' 时,它会抛出:

/home/jenkins/agent/workspace/nodejs@tmp/durable-492ddc4c/script.sh: 1: docker: not found

编辑:

我已经使用 docker 构建了自己的镜像,当我执行它时,我可以运行 docker 命令,但管道仍然抛出 docker not find 命令并发现它是因为jnlp没有安装docker。有什么想法如何在jenkins-inbound-agent内修复它吗?

最佳答案

您应该自定义 jenkins/inbound-agent添加docker命令,下面是一个最小的例子:

Dockerfile:

FROM jenkins/inbound-agent
USER root
RUN apt-get update; \
apt-get install -y wget; \
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz; \
tar zxvf docker-20.10.9.tgz; \
cp -f docker/docker /usr/local/bin; \
rm -fr docker-20.10.0.tgz docker; \
apt-get purge -y wget

构建:

docker build -t my-inbound-agent .

上面将在自定义镜像中安装 docker 客户端二进制文件,以便您在 inbound-agent 中使用 docker 命令。但是,启动时仍然需要将 docker unix socket 挂载到 inbound-agent,并且还需要使用自定义的agent image,如下所示:

启动代理:

docker run --init -v /var/run/docker.sock:/var/run/docker.sock my-inbound-agent -url ......

然后,我们可以通过下一步验证代理中是否正常:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ad70ee079f5 my-inbound-agent "/usr/local/bin/jenk…" 7 minutes ago Up 7 minutes jolly_fermat
$ docker exec -it 6ad70ee079f5 docker version
Client:
Version: 20.10.9
API version: 1.41
Go version: go1.16.8
Git commit: c2ea9bc
Built: Mon Oct 4 16:03:22 2021
OS/Arch: linux/amd64
Context: default
Experimental: true

Server: Docker Engine - Community
Engine:
Version: 20.10.1
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: f001486
Built: Tue Dec 15 04:32:45 2020
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: 1.4.3
GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.19.0
GitCommit: de40ad0

关于 Jenkins 管道内未找到 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70947968/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com