Jenkins pipeline + docker构建和管理服务
1. 部署Jenkins服务
Jenkins 是一款开源的 持续集成 / 持续交付(CI/CD) 自动化服务器,用 Java 编写,MIT 许可证,可独立运行在 Windows、macOS、Linux 甚至 Docker/K8s 上。它的核心作用是:把“写代码 → 构建 → 测试 → 打包 → 部署”这一系列重复劳动自动化,让团队更快、更可靠地交付软件
本文采用docker-compose的方式部署Jenkins,按照如下步骤进行:
1.1 拉取LTS(长期支持版)版Jenkins Docker镜像
docker pull jenkins:lts
1.2 创建持久化存储目录(非常重要)
mkdir -p /home/data/jenkins
1.3 挂载宿主机的docker和docker-compose(可选)
为了能够在Jenkins流水线中使用docker或docker compose构建服务,需要在Jenkins容器中挂载宿主机的docker、docker.sock以及docker compose
目前测试情况,Jenkins支持docker-compose v2.24及以上版本,可从github或以下链接获取:
修改docker-compose权限:
chmod +x /home/docker-file/docker-compose-v2.24.0/docker-compose-linux-x86_64
1.4 docker-compose.yml文件,以下是一个示例
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
privileged: true
container_name: jenkins-server
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /home/data/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker:ro
- /home/docker-file/docker-compose-v2.24.0/docker-compose-linux-x86_64:/usr/local/bin/docker-compose
restart: always
1.5 启动Jenkins服务
docker-compose up -d
1.6 使用浏览器访问
1.7 获取初始化密码并完成初始化流程
初始密码在以下文件中:
/home/data/jenkins/secrets/initialAdminPassword
1.8 初始化完成后进入登录页面

1.9 输入设置的账号密码登录后能看到以下页面说明部署成功

2. 使用Jenkins + docker compose 启动Python http服务案例
本章将用一个案例说明如何使用Jenkins pipeline(流水线)任务构建服务
2.1 项目目录结构如下

2.2 各文件样例
2.2.1 app.py
from fastapi import FastAPI, Query, Request
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"]
)
@app.get("/test/")
async def read_items(name: str):
return f"Hello {name}, this is a test page ! ! ! ! ! !"
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=5000)
2.2.2 Dockfile
FROM python:3.9
COPY docker/libs /libs
RUN pip install -r /libs/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
WORKDIR /jk_test
COPY app.py .
CMD ["python", "app.py"]
2.2.3 docker-compose.yml
version: "3.3"
services:
jk-test-worker:
build:
context: ..
dockerfile: docker/Dockerfile
container_name: jk-test-service-1
ports:
- "5002:5000"
environment:
PYTHONPATH: /code
networks:
default:
driver: bridge
ipam:
driver: default
config:
- subnet: "172.24.0.0/24"
2.2.4 requirements.lib
fastapi==0.101.1
uvicorn==0.23.1
2.3 在gitee创建仓库

2.4 本地创建git仓库并关联远程的gitee仓库
2.4.1 初始化git仓库
cd jenkins_test
git init
2.4.2 关联远程gitee仓库
git remote add origin https://gitee.com/DerrickChiu/jk_test.git
2.4.3 提交修改并推送到gitee仓库
git add . # 添加修改的内容
git commit -m "第一次提交" # 提交修改
git push origin master # 推送到gitee仓库
2.5 构建Jenkins Pipeline任务
2.5.1 创建任务



2.5.2 构建任务


绿色对号说明任务构建成功
2.5.3 查看日志

2.5.4 测试服务

服务启动成功!!!