
smartboxtv/jenkins_agent本镜像为Jenkins CI/CD平台提供专用代理节点(Agent),用于接收并执行Jenkins主节点分发的流水线任务。通过部署该代理,可实现构建任务的分布式处理,减轻主节点负载,同时支持多环境并行构建,提升流水线执行效率。
在Jenkins主节点中:
bashdocker run -d \ --name jenkins-agent \ -e JENKINS_URL="[***]" \ # Jenkins主节点URL -e JENKINS_AGENT_NAME="my-agent-01" \ # 代理节点名称(需与Jenkins配置一致) -e JENKINS_SECRET="abcd1234-ef56-gh78-ij90-klmnopqrstuv" \ # 代理连接密钥 -e JENKINS_AGENT_WORKDIR="/home/jenkins/agent" \ # 工作目录(默认/home/jenkins/agent) -v /var/run/docker.sock:/var/run/docker.sock \ # 如需Docker-in-Docker功能(可选) -v jenkins-agent-workdir:/home/jenkins/agent \ # 持久化工作目录(可选) your-registry/jenkins-agent:latest
在Jenkins主节点「Manage Jenkins」→「Nodes」中,查看代理节点状态是否为「在线」
创建docker-compose.yml文件:
yamlversion: '3.8' services: jenkins-agent: image: your-registry/jenkins-agent:latest container_name: jenkins-agent environment: - JENKINS_URL=[***] - JENKINS_AGENT_NAME=my-agent-01 - JENKINS_SECRET=abcd1234-ef56-gh78-ij90-klmnopqrstuv - JENKINS_AGENT_WORKDIR=/home/jenkins/agent volumes: - /var/run/docker.sock:/var/run/docker.sock # 可选,用于构建Docker镜像 - jenkins-agent-workdir:/home/jenkins/agent restart: unless-stopped volumes: jenkins-agent-workdir:
启动命令:
bashdocker-compose up -d
若需使用SSH协议连接代理,需额外配置:
bashdocker run -d \ --name jenkins-agent-ssh \ -p 2222:22 \ -e SSH_USER=jenkins \ -e SSH_PUBKEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." \ # Jenkins主节点公钥 your-registry/jenkins-agent:ssh-latest
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
JENKINS_URL | Jenkins主节点URL(含协议和端口) | [***] |
JENKINS_AGENT_NAME | 代理节点名称(需与Jenkins配置一致) | agent |
JENKINS_SECRET | 代理连接密钥(必填,从Jenkins获取) | - |
JENKINS_AGENT_WORKDIR | 代理工作目录 | /home/jenkins/agent |
JENKINS_PROTOCOL | 通信协议(jnlp或ssh) | jnlp |
JNLP_INSECURE | 是否允许不安全连接(用于自签名证书) | false |
SSH_USER | SSH模式下的用户名 | jenkins |
SSH_PUBKEY | SSH模式下的授权公钥(多个用逗号分隔) | - |
A:检查以下项:
JENKINS_URL是否可从代理容器内访问(可通过docker exec -it <容器ID> curl $JENKINS_URL验证)JENKINS_SECRET是否与Jenkins节点配置一致A:可通过构建自定义镜像实现,示例Dockerfile:
dockerfileFROM your-registry/jenkins-agent:latest # 安装额外工具 RUN apk add --no-cache python3 py3-pip RUN pip3 install pytest
JENKINS_SECRET)建议通过 secrets 管理工具注入,避免明文暴露manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务