带有 Docker CLI 的 Jenkins agent 镜像。
Go to file
LamGC d5591c3691
Some checks failed
Build container image / build (push) Has been cancelled
Update LATEST_VERSION to 3283.v92c105e0f819-8
2025-02-04 00:18:00 +00:00
.github/workflows fix: 使用 jq 以确保可以获取确切的 tag_name. 2025-01-14 09:31:37 +08:00
Dockerfile 修复容器内的 jenkins 用户无法加入 docker 用户组的问题。 (#2) 2023-03-28 00:46:48 +08:00
LATEST_VERSION Update LATEST_VERSION to 3283.v92c105e0f819-8 2025-02-04 00:18:00 +00:00
LICENSE Initial commit 2023-03-18 10:23:17 +08:00
README.md 初步添加一个 Readme。 2023-03-28 01:11:02 +08:00
start-agent.sh 修复容器内的 jenkins 用户无法加入 docker 用户组的问题。 (#2) 2023-03-28 00:46:48 +08:00
update-version.sh fix: 使用 jq 以确保可以获取确切的 tag_name. 2025-01-14 09:31:37 +08:00

jenkins-agent-with-docker

带有 Docker CLI 的 Jenkins agent 镜像。

Note

:仅适用于 Docker不适用于 Podman。

安全警告

将宿主机的 Docker 访问接口提供给 Jenkins 容器(包括 Agent是一件很危险的事情一旦 Jenkins 执行了恶意流水线, 那么流水线将能完全控制 Docker Engine甚至能够访问宿主机的所有文件。因此使用此镜像时必须非常小心。

Usage

使用此镜像必须将宿主机的 /var/run/docker.sock 映射到容器内同等目录,否则 Docker CLI 无法正常工作。

创建用户和用户组

如果 Docker 不是用软件包管理器安装的,那就要先创建一个 docker 用户组,然后将 jenkins 用户加入到该用户组内:

sudo groupadd docker

然后创建一个 jenkins 用户,并将其加入到 Docker 用户组内:

sudo useradd -m -g docker jenkins

部署 Jenkins Agent 容器

在原先的部署命令上,添加 /var/run/docker.sock 的映射和宿主机 jenkins 用户、docker 用户组的 ID 到容器中:

docker run -d --name agent \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e GID=$(grep docker /etc/group | cut -d: -f3) \
    -e UID=$(id -u jenkins) \
    lamgc/jenkins-agent-docker  -url {JENKINS_URL} -workDir=/home/jenkins/agent {Secret} {Agent_Name}

具体配置请参考原版镜像说明:jenkins/inbound-agent - Readme