在腾讯云轻量应用服务器(Lighthouse)上搭建 Jenkins 是一个常见的需求,主要用于自动化构建和部署。由于轻量服务器通常使用 Ubuntu 或 CentOS 系统,且资源相对有限,我们需要选择一种既稳定又节省资源的部署方式。
以下是基于 Docker 方式的推荐方案,这种方式隔离性好、升级方便,且不会污染宿主机的环境。如果你更倾向于直接安装 Java,文末也提供了简要说明。
前置准备
- 登录腾讯云控制台:确保你的轻量应用服务器已经运行,并获取了公网 IP。
- 配置安全组:这是最关键的一步。Jenkins 默认使用
8080端口,Docker 映射后可能也是8080。- 进入轻量服务器控制台 -> 网络 -> 安全组。
- 添加入方向规则:协议类型选
TCP,端口范围填8080(或者你自定义的其他端口),授权对象设为0.0.0.0/0(允许所有 IP)。
- SSH 连接服务器:使用终端工具(如 Xshell, Putty, 或 Mac/Linux 自带 Terminal)通过 SSH 登录到服务器。
方法一:使用 Docker 部署(推荐)
这种方法最干净,数据持久化在宿主机目录,便于备份。
1. 安装 Docker 和 Docker Compose
如果你的服务器是 Ubuntu:
# 更新软件包
sudo apt-get update
# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 安装 Docker Compose (如果版本较老,新版 Docker 已集成 compose 插件)
sudo apt-get install docker-compose-plugin
如果你的服务器是 CentOS:
# 安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
2. 创建 Jenkins 部署目录
为了保持整洁,我们在服务器上创建一个专门存放数据的目录:
mkdir -p /opt/jenkins/data
cd /opt/jenkins
3. 编写 docker-compose.yml
在该目录下创建配置文件:
nano docker-compose.yml
粘贴以下内容(根据需求调整端口或镜像版本):
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts-jdk17 # 推荐使用 LTS 长期支持版,内置 JDK 17
container_name: jenkins
restart: always
ports:
- "8080:8080" # 宿主机端口 : 容器内部端口
- "50000:50000" # JNLP 端口,用于 Agent 连接
volumes:
- ./data:/var/jenkins_home # 数据持久化挂载
environment:
- TZ=Asia/Shanghai # 时区设置
- JAVA_OPTS=-Xms512m -Xmx1g # 限制内存,防止 OOM
privileged: true # 赋予特权模式,方便后续在 Jenkins 内拉取 Docker 镜像
按 Ctrl + O 保存,Enter 确认,然后 Ctrl + X 退出。
4. 启动 Jenkins
docker-compose up -d
5. 获取初始管理员密码
Jenkins 首次启动需要时间(约 1-3 分钟),启动后查看初始化密码:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
复制输出的字符串。
6. 网页访问与初始化
- 打开浏览器,访问
http://<你的服务器IP>:8080。 - 输入刚才获取的密码。
- 安装建议:选择 "Install suggested plugins"(安装推荐插件)。
- 等待插件下载完成,设置管理员账号(建议设置一个强密码的用户名和密码)。
- 完成向导,进入 Jenkins 主界面。
方法二:直接安装(不推荐,除非资源极度受限)
如果你的服务器没有安装 Docker 且不想安装,可以直接安装 Java 和 Jenkins。
-
安装 OpenJDK 17:
# Ubuntu sudo apt install openjdk-17-jdk # CentOS sudo yum install java-17-openjdk-devel - 添加 Jenkins 源并安装:
# Ubuntu curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null sudo apt-get update sudo apt-get install jenkins - 启动服务:
sudo systemctl start jenkins sudo systemctl enable jenkins - 获取密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
常见问题与优化建议
-
内存不足 (OOM):
轻量服务器通常只有 1GB 或 2GB 内存。Jenkins 本身比较吃内存。- 解决:在
docker-compose.yml中调整JAVA_OPTS,例如-Xms256m -Xmx512m,或者给服务器增加 Swap 交换分区。
- 解决:在
-
无法拉取 Docker 镜像:
如果在 Jenkins 内部构建时需要拉取镜像,可能会因为网络问题失败。- 解决:在 Jenkins 的“系统管理” -> “全局工具配置”中配置 Docker Hub 镜像提速地址,或者在宿主机层面配置国内镜像提速器。
-
权限问题:
如果 Jenkins 构建任务涉及操作宿主机文件,记得检查docker-compose.yml中的privileged: true是否开启,或者将宿主机的/var/run/docker.sock挂载进去(注意安全风险)。 -
公网访问安全:
虽然为了方便测试我们开放了 8080 端口,但在生产环境中,建议:- 修改默认端口(如改为 8081)。
- 配合 Nginx 反向X_X并配置 HTTPS。
- 仅对特定 IP 段开放安全组规则。
现在你可以尝试访问 http://<服务器IP>:8080 开始你的 CI/CD 之旅了。如果在初始化过程中遇到具体报错,欢迎随时告诉我!
云计算