在腾讯云轻量应用服务器(Lighthouse)上搭建 Jenkins 是一个非常经典且高效的 CI/CD 方案。由于轻量服务器通常配置精简,我们推荐采用 Docker 容器化部署的方式,这样既能隔离环境、方便迁移,又不会占用过多的系统资源。
以下是基于 Docker 在腾讯云服务器上搭建 Jenkins 的完整步骤:
1. 前置准备与网络配置
在开始安装前,请确保你的轻量服务器已连接互联网,并且安全组规则已放行 Jenkins 所需的端口。
- 登录控制台:进入腾讯云轻量应用服务器控制台,找到你的实例。
- 配置安全组:
- 点击实例右侧的“更多” -> “防火墙”。
- 添加一条入方向规则:协议
TCP,端口范围8080(Jenkins 默认 Web 端口) 和50000(Agent 通信端口)。 - 注意:如果你使用 Nginx 反向X_X或负载均衡,只需放行 80/443 即可。
2. 安装 Docker 环境
虽然轻量服务器镜像可能预装了 Docker,但为了稳定性,建议手动更新或重新安装最新稳定版。通过 SSH 登录服务器执行以下命令(以 Ubuntu/CentOS 为例):
# 更新包索引
sudo apt-get update || sudo yum update -y
# 安装 Docker 依赖
sudo apt-get install -y docker.io docker-compose || sudo yum install -y docker docker-compose
# 启动 Docker 服务并设置开机自启
sudo systemctl enable --now docker
提示:如果是 CentOS 7/8,可能需要先安装
yum-utils和containerd等组件,或者直接使用 Docker 官方提供的安装脚本。
3. 一键部署 Jenkins
我们将使用 Docker Compose 来管理 Jenkins 及其持久化数据卷。这种方式比直接运行 docker run 更易于维护。
方式 A:使用 Docker Compose (推荐)
创建一个目录并编写配置文件:
mkdir -p ~/jenkins
cd ~/jenkins
创建 docker-compose.yml 文件:
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: always
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock # 允许 Jenkins 内部操作 Docker
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS=-Xmx2g -Xms1g # 根据服务器内存调整 JVM 参数
volumes:
jenkins_home:
启动服务:
docker-compose up -d
方式 B:直接 Docker Run (快速测试)
如果你不想写 yaml 文件,可以直接运行:
docker run -d
--name jenkins
-p 8080:8080
-p 50000:50000
-v jenkins_home:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
-e TZ=Asia/Shanghai
-e JAVA_OPTS="-Xmx2g -Xms1g"
jenkins/jenkins:lts
4. 初始化 Jenkins
-
获取初始密码:
服务启动后,需要几分钟进行初始化。查看初始管理员密码:docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword复制输出的字符串。
-
访问 Web 界面:
在浏览器输入http://<你的公网 IP>:8080。- 粘贴刚才获取的密码。
- 选择 "Install suggested plugins" (安装建议插件),等待安装完成。
- 创建第一个管理员账号(建议用户名和密码记好)。
- 完成向导,进入主页面。
5. 关键配置:Docker 权限与 Maven/Java
为了让 Jenkins 能构建项目,通常需要安装 JDK 和 Maven,或者让 Jenkins 调用宿主机的 Docker。
方案一:利用宿主机 Docker (推荐轻量机)
我们在启动时已经挂载了 /var/run/docker.sock。这意味着 Jenkins 容器内可以直接执行 docker build 等命令,无需在 Jenkins 内部再安装 Docker。
方案二:安装构建工具 (如 Maven/Node.js)
如果需要在 Jenkins 内部安装工具,可以在 Manage Jenkins -> Plugins 中搜索并安装对应插件(如 Git, Maven Integration),然后在 System Configuration 中指定路径,或者直接在 Jenkins 里通过命令行安装。
更简单的做法:在 Jenkins 全局工具配置中,勾选 "Install automatically",然后重启任务即可自动下载所需版本。
6. 进阶优化 (可选)
- Nginx 反向X_X:
如果希望域名访问且隐藏端口,可以安装 Nginx 反向X_X到 80 端口,并在 Jenkins 中配置Root URL为你的域名。 - 快照备份:
定期将jenkins_home目录打包备份到腾讯云对象存储 (COS),防止数据丢失。 - 资源限制:
轻量服务器内存有限,务必在启动参数中限制JAVA_OPTS的堆内存大小(如-Xmx2g),防止 OOM (Out Of Memory) 导致进程被杀。
常见问题排查
- 无法访问 8080 端口:检查轻量服务器控制台的“防火墙”设置,确保 TCP 8080 是放行的。
- Jenkins 启动失败:查看日志
docker logs jenkins,通常是因为磁盘空间不足或 Java 内存配置过大。 - 中文乱码:在
docker-compose.yml或环境变量中设置LANG=C.UTF-8或确保系统语言支持 UTF-8。
通过以上步骤,你就成功在腾讯云轻量服务器上拥有了一个功能完整的 Jenkins 持续集成环境。接下来你可以创建第一个 Pipeline 任务来测试构建流程了。
CLOUD云计算