
该项目旨在构建预配置的Jenkins 2 Docker镜像,提供运行全Docker支持的Jenkins所需的所有插件,支持多Docker从节点和Docker Pipeline插件,适用于快速部署Docker环境下的Jenkins主从架构。
Docker Hub上提供三个镜像:Jenkins主节点、SSH从节点和JNLP从节点。
最新镜像可在https://hub.docker.com/r/foxylion/jenkins/%E8%8E%B7%E5%8F%96%E3%80%82
Jenkins主节点镜像提供预配置的Jenkins 2版本,包含运行Docker流水线所需的所有插件,并集成新的Blueocean流水线视图。
Jenkins主节点需暴露HTTP端口和从节点通信端口。
bashdocker run -d --name jenkins -p 80:8080 -p 50000:50000 \ -v /var/lib/jenkins:/var/jenkins_home \ foxylion/jenkins
JENKINS_PASS环境变量修改密码/var/lib/jenkins移除-v参数会阻止容器向主机文件系统写入数据,但容器删除时可能导致数据丢失。
最新镜像可在https://hub.docker.com/r/foxylion/jenkins-ssh-slave/%E8%8E%B7%E5%8F%96%E3%80%82
Jenkins SSH从节点镜像是轻量级解决方案,可在任何Docker启用的服务器上零依赖运行Jenkins从节点。其设计理念是在Docker主机上运行容器,暴露SSH服务器供Jenkins主节点连接。镜像支持配置可信SSH密钥或密码认证。
bashdocker run -d --name jenkins-slave --restart=unless-stopped \ -p 2222:22 \ -v /home/jenkins:/home/jenkins \ -v /var/run/docker.sock:/var/run/docker.sock \ -e SSH_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6CPOQDrq...faMvvidd+RVSfDBgJE1g3 jenkins@jenkins.company.tld" \ foxylion/jenkins-ssh-slave
在Jenkins主节点上配置新节点时需注意:
root/home/jenkinsdocker logs jenkins-slave获取从节点指纹并进行比对以下环境变量可自定义从节点行为:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SSH_PASSWORD | 用于配置密码认证 | jenkins |
SSH_KEY | 配置后仅允许使用此密钥认证 | - |
最新镜像可在https://hub.docker.com/r/foxylion/jenkins-slave/%E8%8E%B7%E5%8F%96%E3%80%82
Jenkins JNLP从节点镜像提供可配置的Jenkins从节点版本,支持凭据或JNLP从节点密钥认证。从节点容器启动时可自动创建节点,容器停止时自动移除节点。
bashdocker run -d --name jenkins-slave --restart=unless-stopped \ -v /home/jenkins:/home/jenkins \ -v /var/run/docker.sock:/var/run/docker.sock \ -e JENKINS_URL=https://jenkins.mycompany.com \ foxylion/jenkins-slave
默认情况下,从节点会自动创建临时Jenkins节点,名称由前缀docker-slave和容器主机名组成。
注意:JNLP从节点与主节点通信时不提供加密,不建议在不可信网络中使用。建议改用SSH从节点镜像。
以下环境变量可自定义从节点行为:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
JENKINS_URL | Jenkins的HTTP访问URL | http://jenkins |
JENKINS_SLAVE_ADDRESS | 启动TCP连接时用于连接Jenkins服务器的替代地址,会覆盖Jenkins主节点提供的地址 | - |
JENKINS_USER | 用于Jenkins主节点认证的用户 | admin |
JENKINS_PASS | 用于Jenkins主节点认证的密码 | admin |
SLAVE_NAME | Jenkins节点名称(必须与现有节点匹配),留空则自动生成 | - |
SLAVE_SECRET | 使用提供的JNLP密钥代替用户/密码认证 | - |
SLAVE_EXECUTORS | 从节点提供的执行器数量 | 1 |
SLAVE_LABELS | 从节点标签,使用空格分隔 | docker |
SLAVE_WORKING_DIR | 自定义工作目录(当无法在docker run命令中使用-w时) | - |
CLEAN_WORKING_DIR | 设置为true时,从节点启动时清理工作目录,可防止工作目录中存储的配置导致构建失败 | true |
临时从节点
当SLAVE_NAME环境变量留空时启用临时从节点功能。从节点会自动创建具有生成名称的新Jenkins节点,从节点关闭后Jenkins节点会被删除。如需避免此行为,使用持久从节点。
持久从节点
运行不自动创建Jenkins节点但使用JNLP从节点认证的从节点。
注意:必须将从节点的"远程根目录"设置为/home/jenkins。
bashdocker run -d \ -v /home/jenkins:/home/jenkins \ -v /var/run/docker.sock:/var/run/docker.sock \ -e JENKINS_URL=http://jenkins.mycompany.com \ -e SLAVE_NAME=docker-slave-028 \ foxylion/jenkins-slave
更改"远程根目录"
默认情况下,Jenkins从节点要求/home/jenkins挂载到Docker主机上的等效目录。
注意:主机上使用不同的目录路径会导致构建失败。了解更多(章节:"在容器内运行构建步骤")
如需在Docker主机上使用不同目录,可在启动容器时指定:
bashdocker run -d \ -w /tmp/jenkins-slave \ -v /tmp/jenkins-slave:/tmp/jenkins-slave \ -v /var/run/docker.sock:/var/run/docker.sock \ -e JENKINS_URL=http://jenkins.mycompany.com \ foxylion/jenkins-slave
以下链接有助于开始使用Jenkins流水线与Docker结合:
以下是 foxylion/jenkins 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务