服务器持续交付搭建是一套可重复、可验证、可回滚的自动化流程,核心是将代码变更到生产的每步标准化、脚本化、可观测;需在linux vps上完成环境准备、docker部署jenkins、配置工具链与插件、编写jenkinsfile流水线,并强化权限、日志与回滚机制。

服务器持续交付搭建不是一次性配置,而是一套可重复、可验证、可回滚的自动化流程。核心在于把代码变更到生产环境的每一步都标准化、脚本化、可观测——而不是靠人工登录服务器敲命令。
选型与基础环境准备
先明确运行载体:推荐用 Linux VPS(如 Ubuntu 22.04 或 CentOS Stream),避免 Windows Server 增加运维复杂度。资源起步建议 2 核 4GB 内存 + SSD 存储,带宽至少 5Mbps。关键动作包括:
- 关闭 root 密码登录,创建专用部署用户(如 deployer),配置 SSH 密钥认证
- 开放最小必要端口:22(SSH)、80/443(服务访问),其他一律禁用
- 安装基础工具链:git、curl、wget、vim、unzip,并提前装好 JDK(Jenkins/Maven 所需)和 Docker(便于构建与部署隔离)
- 设置时区为 Asia/Shanghai,启用 NTP 时间同步,避免日志或证书时间异常
Jenkins 作为调度中枢快速落地
不建议源码编译安装,直接用 Docker 启动 Jenkins LTS 版本,兼顾稳定与易维护:
针对Linux系统,phpStudy团队推出全网首家linux docker容器面板,只要一个命令,快速安装面板,在面板里可以自行选择软件版本,可以方便的进行安全配置,就算没有Linux基础也可以快速搭建和管理PHP服务器环境!
- 执行 docker run -d --name jenkins -p 8080:8080 -v /opt/jenkins:/var/jenkins_home -u root jenkins/jenkins:lts
- 首次访问 http://服务器IP:8080,用 cat /opt/jenkins/secrets/initialAdminPassword 获取初始化密码
- 安装推荐插件后,进入 Manage Jenkins → Global Tool Configuration 配置 JDK 和 Maven 路径(如 JDK 17、Maven 3.9.x)
- 必装插件:Git Parameter、Publish Over SSH、Docker Pipeline、Blue Ocean(可视化流水线)
定义可复用的交付流水线
以 Java Spring Boot 项目为例,一个典型 pipeline 应包含拉代码→编译→测试→构建成镜像→推送到私有仓库→部署到目标服务器五步。全部写进 Jenkinsfile 管理:
- 使用 checkout scm 拉取 Git 仓库,支持分支或 Tag 参数化构建
- 用 sh 'mvn clean package -DskipTests' 编译,跳过测试阶段(单元测试可在单独 stage 运行)
- 用 docker build -t registry.example.com/app:${BUILD_NUMBER} . 构建镜像
- 通过 docker push 推送至内网 Harbor 或阿里云 ACR
- 最后在目标服务器上执行 docker-compose pull && docker-compose up -d,或用 SSH 插件远程触发脚本
安全与稳定性加固要点
交付系统一旦上线,就成为关键基础设施,需从权限、日志、回滚三方面加固:
- 所有 Jenkins 凭据统一走 Credentials Plugin 管理,禁止明文写在脚本里
- 构建产物(如 WAR/JAR/Docker 镜像)必须带唯一标识(BUILD_NUMBER 或 GIT_COMMIT),方便追踪和回滚
- 每次部署前自动备份旧版本容器或配置文件,失败时一键执行 docker-compose rollback 或恢复快照
- 开启 Jenkins 审计日志,记录谁在何时触发了哪次构建,对接 ELK 或简单存到本地文件供查证










