jenkins/jnlp-agent-pythonJenkins JNLP Agent with Python 是一个基于 JNLP(Java Network Launch Protocol)协议的 Jenkins 代理(Agent)镜像,内置 Python 运行环境。该镜像用于在 Jenkins 分布式架构中作为工作节点(Agent),接收并执行来自 Jenkins Master 的构建任务,特别适用于需要 Python 环境的 CI/CD 流程。
3.9、3.10 等)。从 Docker Hub 拉取镜像(根据需要指定 Python 版本标签,默认标签为 latest):
bashdocker pull jenkins/jnlp-agent-python:3.9 # Python 3.9 版本 docker pull jenkins/jnlp-agent-python:latest # 最新版本
通过 docker run 命令启动 Agent,需指定 Jenkins Master 地址、JNLP 连接密钥及 Agent 名称:
bashdocker run -d \ --name jenkins-python-agent \ -e JENKINS_URL="[***]" \ # Jenkins Master URL -e JNLP_SECRET="your-jnlp-secret" \ # Agent 连接密钥(从 Jenkins Master 获取) -e AGENT_NAME="python-agent-01" \ # Agent 名称(需在 Jenkins 中唯一) -e AGENT_WORKDIR="/home/jenkins/agent" \ # 工作目录(可选,默认 /home/jenkins/agent) -v /var/run/docker.sock:/var/run/docker.sock \ # 如需在 Agent 中使用 Docker(可选) -v jenkins-agent-workdir:/home/jenkins/agent \ # 持久化工作目录(可选) jenkins/jnlp-agent-python:3.9
在 Jenkins Master 中创建 Agent:
AGENT_NAME 一致),选择“永久性代理”,点击“确定”。AGENT_WORKDIR 一致(如 /home/jenkins/agent)。JNLP_SECRET)。获取 JNLP_SECRET:
JNLP_SECRET 环境变量值。| 环境变量名 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
JENKINS_URL | Jenkins Master 的 URL(含协议,如 https://) | - | 是 |
JNLP_SECRET | Agent 连接 Jenkins Master 的密钥 | - | 是 |
AGENT_NAME | Agent 名称(需在 Jenkins 中唯一) | agent | 否 |
AGENT_WORKDIR | Agent 工作目录 | /home/jenkins/agent | 否 |
JENKINS_TUNNEL | 用于代理连接的隧道地址(如 host:port) | - | 否 |
JAVA_OPTS | JVM 参数(如内存限制 -Xmx512m) | - | 否 |
-v jenkins-agent-workdir:/home/jenkins/agent 挂载卷,避免任务数据丢失。-v /var/run/docker.sock:/var/run/docker.sock。/home/jenkins/.ssh,用于访问代码仓库(如 Git)。创建 docker-compose.yml 文件,配置 Agent 服务:
yamlversion: '3.8' services: jenkins-python-agent: image: jenkins/jnlp-agent-python:3.9 container_name: jenkins-python-agent restart: always environment: - JENKINS_URL=[***] - JNLP_SECRET=your-jnlp-secret # 替换为实际密钥 - AGENT_NAME=python-agent-01 - AGENT_WORKDIR=/home/jenkins/agent - JAVA_OPTS=-Xmx1g # 分配 1GB 内存 volumes: - jenkins-agent-workdir:/home/jenkins/agent - /var/run/docker.sock:/var/run/docker.sock # 可选,用于 Docker 命令执行 networks: - jenkins-network # 确保与 Jenkins Master 在同一网络(如需) volumes: jenkins-agent-workdir: # 持久化工作目录 networks: jenkins-network: external: true # 假设 Jenkins Master 已在该网络中
启动服务:
bashdocker-compose up -d
3.8、3.11),避免使用 latest 标签导致版本变更。JAVA_OPTS 和容器资源限制(如 --memory=2g),避免资源耗尽。JENKINS_URL(通常为 8080 端口或 HTTPS 443 端口)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务