在腾讯云轻量应用服务器(Lighthouse)上搭建 Jenkins 是一个非常常见的需求。由于轻量服务器的系统通常精简且资源有限,推荐使用 Docker 方式部署,这样不仅环境隔离性好、升级方便,而且不占用宿主机的系统目录。
以下是基于 Ubuntu/Debian 或 CentOS/Rocky Linux 系统的完整搭建步骤:
第一步:登录并安装基础工具
首先通过 SSH 登录到你的轻量服务器。你需要先安装 Docker 和 Docker Compose。
1. 更新系统源
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/Rocky Linux:
sudo yum update -y # 或者 sudo dnf update -y
2. 安装 Docker
使用官方脚本快速安装(推荐):
curl -fsSL https://get.docker.com | sh -s docker --mirror Aliyun
# 如果是国内用户,建议加上 --mirror Aliyun 以提速下载
启动并设置开机自启:
sudo systemctl enable docker
sudo systemctl start docker
3. 安装 Docker Compose (可选但推荐)
如果你习惯使用 docker-compose 管理多容器,请安装它:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
第二步:创建 Jenkins 数据目录
Jenkins 的数据(插件、配置、构建历史)需要持久化存储。建议创建一个独立目录:
mkdir -p ~/jenkins-data
cd ~/jenkins-data
第三步:编写 Docker Compose 文件
在项目目录下创建 docker-compose.yml 文件。这个配置会挂载卷以确保数据不丢失,并开放端口。
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 (实现 Docker-in-Docker)
environment:
- JAVA_OPTS=-Xms512m -Xmx1024m -Dfile.encoding=UTF-8
- TZ=Asia/Shanghai # 时区设置
注意:将
/var/run/docker.sock挂载进去是为了让 Jenkins 能执行docker build等命令。如果你的服务器内存较小(如 1G),可以适当调整JAVA_OPTS中的内存限制。
第四步:启动 Jenkins
运行以下命令启动服务:
docker-compose up -d
检查容器状态:
docker-compose ps
如果显示 Up 状态,说明启动成功。
第五步:获取管理员密码并解锁
首次启动后,Jenkins 需要初始化,此时会生成一个初始管理员密码。
-
查看密码:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword注:如果提示找不到文件,请等待 1-2 分钟让 Jenkins 完成初始化,然后再次执行。
-
本地浏览器访问:
打开浏览器,输入你的服务器公网 IP:
http://<你的服务器IP>:8080 -
解锁流程:
- 粘贴上一步查到的密码。
- 选择 “Install suggested plugins”(推荐安装插件)。
- 创建第一个管理员账号(用户名、密码、邮箱)。
- 点击保存并完成。
第六步:重要配置与优化(必读)
1. 配置国内镜像源(关键)
Jenkins 默认从国外拉取插件,速度极慢甚至超时。进入 Manage Jenkins -> Plugins -> Advanced Settings,将 Update Center 地址修改为阿里云镜像:
- Update site URL:
https://mirrors.cloud.tencent.com/jenkins/war-stable/latest/updates.json
(或者直接在命令行中重启容器并指定参数,但在 UI 配置更直观)
2. 配置 Git 插件
确保安装了 Git Plugin。在 Manage Jenkins -> Tools -> Git 中配置 Git 路径(通常是 /usr/bin/git)。
3. 配置 SSH 免密(用于拉取代码)
为了安全,Jenkins 不应直接使用 Git 账号密码。
- 在服务器上生成密钥:
ssh-keygen -t rsa - 将公钥 (
~/.ssh/id_rsa.pub) 添加到你的 GitHub/GitLab 仓库的 Deploy Keys 或 User Settings。 - 在 Jenkins 的 Manage Jenkins -> Credentials 中添加 SSH Username with private key。
4. 防火墙与安全组
确保云服务器的安全组规则已放行:
- 入方向:TCP 协议,端口
8080。 - 入方向:TCP 协议,端口
50000(用于 Jenkins Agent 通信)。 - 如果使用 HTTPS,建议配置 Nginx 反向X_X并申请 SSL 证书。
常见问题排查
-
启动后一直卡在 "Welcome to Jenkins"?
- 可能是网络问题导致插件下载失败。请检查上述“配置国内镜像源”的步骤。
- 也可以尝试在
docker-compose.yml的environment中增加- JENKINS_OPTS="--prefix=/"来改变上下文路径。
-
内存不足导致 Jenkins 崩溃?
- 轻量服务器如果只有 1GB 内存,Jenkins 可能会 OOM。请在
docker-compose.yml中减少JAVA_OPTS的内存限制,例如改为-Xms256m -Xmx512m。
- 轻量服务器如果只有 1GB 内存,Jenkins 可能会 OOM。请在
-
如何停止或重装?
- 停止:
docker-compose down - 彻底重装(警告:会清空所有构建记录和插件):删除
~/jenkins-data目录,然后重新执行docker-compose up -d。
- 停止:
通过以上步骤,你就拥有了一个运行在腾讯云轻量服务器上的现代化 Jenkins CI/CD 平台。接下来就可以开始编写 Jenkinsfile 进行自动化构建了。
轻量云Cloud