Jenkins 基础架构与容器化部署
1. 核心概念
Jenkins 是基于 Java 的开源自动化服务器,核心作用是 CI (持续集成)。它通过"插件"发出指令,通过"节点/代理"执行命令。
2. 部署架构:Docker out of Docker (DooD)
误区纠正: Jenkins 容器内部不包含 Docker 引擎,也不能运行子容器。
正确做法: 采用"兄弟容器"模式。Jenkins 容器通过挂载宿主机的 docker.sock,指挥宿主机启动兄弟容器来执行构建任务。
┌─────────────────────────────────────────────────────┐
│ 宿主机 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Jenkins 容器 │ │ 构建容器 (兄弟) │ │
│ │ (Docker CLI) │───▶│ (Maven/Node等) │ │
│ └────────┬────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ docker.sock │ ◀── Docker 引擎 │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────┘