从零搭建 Jenkins + Docker + Gitee 自动化部署流水线
本文介绍如何基于 Jenkins、Docker 和 Gitee 构建自动化部署流水线,实现代码推送后的自动构建、镜像打包及容器重启,并通过飞书机器人实时通知构建状态。
一、架构与流程
整体流程如下:
- 开发者将代码推送到 Gitee 仓库。
- Jenkins 监听代码变动或手动触发构建。
- Jenkins 拉取代码,使用 Docker Compose 构建并启动 Python 应用与 MySQL 数据库容器。
- 构建完成后,通过 Webhook 发送通知至飞书群。
二、项目文件结构
project/
├── app.py
├── Dockerfile
├── Dockerfile_db
├── docker-compose.yml
├── Jenkinsfile
├── init.sql
└── requirements.txt
1. Flask 应用 (app.py)
from flask import Flask, Response
import mysql.connector
import os
app = Flask(__name__)
@app.route('/')
def hello():
conn = mysql.connector.connect(
host=os.environ.get('DB_HOST', 'db'),
user=os.environ.get('DB_USER', 'root'),
password=os.environ.get('DB_PASSWORD', '<your_password>'),
database=os.environ.get('DB_NAME', 'testdb'),
charset='utf8mb4'
)
cursor = conn.cursor()
cursor.execute("SELECT message FROM greetings LIMIT 1")
row = cursor.fetchone()
conn.close()
return Response(
f"数据库说:{row[0]},这条数据来自MySQL!",
content_type='text/html; charset=utf-8'
)
if __name__ == '__main__':
# 在 Docker 环境下必须设为 0.0.0.0,否则容器外无法访问
app.run(host='0.0.0.0', port=5000)


