在腾讯云轻量应用服务器(Lighthouse)上搭建 Jenkins 是一个非常经典且高效的 CI/CD 方案。由于轻量服务器的资源通常比较精简,我们推荐采用 Docker 方式部署,这样不仅安装简单、环境隔离好,而且后续升级和维护也更方便。
以下是基于 Ubuntu 20.04/22.04 系统的完整搭建步骤:
1. 前置准备
首先登录腾讯云控制台,确保你的轻量服务器已开启防火墙端口(默认 8080),或者在安全组中放行该端口。
# 更新系统源并安装 Docker (如果尚未安装)
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo systemctl enable --now docker
注意:如果你使用的是 CentOS 7/8,请将
apt-get命令替换为yum或dnf的安装流程。
2. 创建 Jenkins 数据目录
为了数据安全,建议将 Jenkins 的数据持久化存储在宿主机上,防止容器重启后数据丢失。
mkdir -p ~/jenkins_home
cd ~/jenkins_home
3. 编写 Docker Compose 配置文件
在项目目录下创建一个名为 docker-compose.yml 的文件。这个文件定义了 Jenkins 容器的运行参数、插件配置以及数据挂载。
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: always
ports:
- "8080:8080" # Web 访问端口
- "50000:50000" # Agent 连接端口
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock # 允许 Jenkins 内部调用 Docker
environment:
- JAVA_OPTS=-Xms512m -Xmx2g -Duser.timezone=Asia/Shanghai # 设置 Java 内存和时区
networks:
- jenkins_net
networks:
jenkins_net:
driver: bridge
关键点说明:
/var/run/docker.sock的挂载非常关键,它允许 Jenkins 在构建任务时直接在服务器内部运行 Docker 命令(例如构建镜像)。JAVA_OPTS根据你服务器的内存大小调整,轻量机建议至少分配 512MB。
4. 启动 Jenkins
使用 Docker Compose 启动服务:
docker-compose up -d
启动成功后,可以通过以下命令查看日志确认是否正常运行:
docker logs -f jenkins
5. 初始化与解锁
首次访问需要输入初始管理员密码。
-
获取密码:
在服务器上执行:sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword复制输出的长字符串。
-
Web 界面配置:
- 浏览器访问
http://<你的服务器公网IP>:8080。 - 输入刚才获取的密码。
- 插件选择:建议选择 "Install suggested plugins"(安装建议插件),这会包含 Git、Maven、Gradle 等常用工具。
- 创建管理员:设置你自己的用户名和密码(用于日常登录)。
- 实例配置:保持默认 URL 即可,点击保存并继续。
- 浏览器访问
6. 安装常用中文插件与语言设置
Jenkins 默认可能是英文界面,建议安装中文插件以获得更好的体验:
- 进入 Manage Jenkins -> Plugins。
- 点击 Available plugins,搜索
Chinese (Simplified) Language Pack。 - 勾选并安装,安装完成后重启 Jenkins。
- 进入 Manage Jenkins -> System,在 Locale 中选择
zh_CN并保存。
7. 配置 Docker 插件(可选但推荐)
为了让 Jenkins 能够直接拉取镜像或构建镜像,需要配置 Docker 插件:
- 进入 Manage Jenkins -> Tools -> Docker。
- 确保 Docker 路径正确(通常不需要额外配置,因为挂载了 socket)。
- 进入 Manage Jenkins -> Plugins,确保
Docker Pipeline插件已安装。
8. 常见问题排查
- 无法访问页面:
- 检查腾讯云控制台“安全组”规则,确保入方向允许 TCP 协议的 8080 端口。
- 检查服务器内部防火墙(如
ufw或firewalld)是否拦截。
- 构建任务报错 "No space left on device":
- 轻量服务器磁盘空间有限。检查
df -h,如果/var/jenkins_home所在的分区满了,需要清理旧构建产物或扩容云盘。
- 轻量服务器磁盘空间有限。检查
- Java 内存不足:
- 如果构建大型项目导致 Jenkins 崩溃,请修改
docker-compose.yml中的JAVA_OPTS,适当调大-Xmx的值(例如改为-Xmx4g),前提是服务器物理内存足够。
- 如果构建大型项目导致 Jenkins 崩溃,请修改
完成以上步骤后,你就可以开始创建第一个 Job,实现代码自动拉取、编译、打包和部署的全流程自动化了。
云服务器