在腾讯云轻量应用服务器(Tencent Cloud Lighthouse)上搭建 Jenkins 是一个常见的需求,通常推荐使用 Docker 方式部署,因为这样环境隔离性好、升级方便且占用资源相对可控。
以下是基于 Ubuntu 20.04/22.04 系统的完整搭建步骤:
1. 基础环境准备
首先登录到轻量服务器的控制台,通过 SSH 连接进入终端。确保系统是最新的,并安装必要的工具。
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 Docker 和 Docker Compose (如果尚未安装)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
# 注意:执行完上述命令后,建议重新登录或运行 newgrp docker 使组权限生效
2. 创建 Jenkins 数据目录
为了持久化保存 Jenkins 的配置、插件和历史构建记录,我们需要创建一个专门的挂载目录。
mkdir -p ~/jenkins-data
cd ~/jenkins-data
3. 编写 Docker Compose 配置文件
在该目录下创建一个 docker-compose.yml 文件。这个文件定义了 Jenkins 容器的运行参数、端口映射以及数据卷挂载。
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts-jdk17
container_name: jenkins
restart: always
ports:
- "8080:8080" # Jenkins Web 界面端口
- "50000:50000" # Agent 连接端口
volumes:
- ./jenkins_home:/var/jenkins_home # 挂载数据目录,防止容器删除后数据丢失
- /var/run/docker.sock:/var/run/docker.sock # 允许 Jenkins 在容器内操作宿主机 Docker
environment:
- TZ=Asia/Shanghai # 设置时区
- JAVA_TOOL_OPTIONS=-Xms512m -Xmx1g # 限制 Java 内存,防止 OOM
注意:
/var/run/docker.sock的挂载非常重要,如果你希望 Jenkins 能够执行docker build或docker run命令来构建镜像,必须挂载此文件。
4. 启动 Jenkins 服务
使用 Docker Compose 启动服务:
docker compose up -d
等待几秒钟,确认容器状态正常:
docker ps
你应该能看到名为 jenkins 的容器处于 Up 状态。
5. 获取初始管理员密码
首次启动后,Jenkins 需要生成一个随机密码用于登录。
# 查看日志以获取密码
sudo docker logs jenkins | grep "Please use the following password to proceed to installation:"
输出类似:Please use the following password to proceed to installation: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。复制这串密码。
6. 配置与解锁
- 打开浏览器,访问
http://<你的服务器公网IP>:8080。 - 输入密码:粘贴刚才获取的初始密码。
- 选择插件:
- 推荐选择 "Install suggested plugins"(安装建议插件),这会一次性安装常用插件。
- 创建管理员账号:
- 设置用户名、密码、邮箱等信息。
- 点击“保存并完成”或“开始使用”。
7. 关键后续配置(重要)
A. 配置 Docker 权限
由于我们挂载了 /var/run/docker.sock,Jenkins 默认可能没有权限调用 Docker。
- 在 Jenkins 页面中,进入 系统管理 (Manage Jenkins) -> 节点管理 (Nodes) -> 全局工具配置 (Global Tool Configuration)。
- 确保安装了 Docker 插件(通常在“安装建议插件”时已自动安装)。
- 如果构建任务报错
Permission denied,可能需要将当前用户加入docker组,或者在 Jenkins 的系统管理 -> 安全性 -> 授权策略中检查。
B. 开放防火墙端口
轻量应用服务器的安全组默认可能只开放了 80/443。你需要去腾讯云控制台:
- 进入 轻量应用服务器 详情页。
- 点击 防火墙 标签页。
- 添加规则:
- 协议:TCP
- 端口范围:8080, 50000
- 来源 IP:0.0.0.0/0 (或指定特定 IP)
C. 配置X_X(可选)
如果你的服务器在国内但需要从国外拉取代码或下载 Maven 依赖,建议在 Jenkins 中配置 HTTP/HTTPS X_X,或者直接使用阿里云/腾讯云的 Maven 镜像仓库。
常见问题排查
- 无法访问页面:检查安全组是否放行了 8080 端口,以及
docker ps是否显示容器正在运行。 - 构建速度慢:可以在
docker-compose.yml中调整-Xmx参数增加内存,或者在 Jenkins 内部配置国内镜像源(如阿里云 Docker Hub 镜像)。 - 磁盘空间不足:Jenkins 会占用较多磁盘空间存储构建日志和工件,定期检查
~/jenkins-data的大小,必要时清理旧构建记录。
至此,你的 Jenkins 持续集成环境已经搭建完成,可以开始编写 Pipeline 脚本进行自动化构建了。
CLOUD云枢