6840960ea464d4b28fa3b845fc5ebef2e6eee827
我的博客
一个用 Flask 写的极简博客,用来演示完整的 CI/CD 链路:
Gitea(代码) → Jenkins(流水线) → Kaniko(构建镜像) → Harbor(镜像仓库) → Kubernetes(部署)
功能
- 首页文章列表
- Markdown 文章详情(代码块、表格、引用)
- 写文章(
/new,需要管理口令) - 阅读计数
- 文章持久化在 Longhorn 卷上
本地跑
pip install -r requirements.txt
DATA_DIR=./data ADMIN_TOKEN=test123 python app.py
# 打开 http://localhost:5000
构建镜像
docker build -t harbor.nineleaves.cn/apps/blog:dev .
docker push harbor.nineleaves.cn/apps/blog:dev
部署
Jenkins 流水线会自动 apply k8s/deployment.yaml 并把镜像替换成本次的构建号。
手动执行:
kubectl apply -f k8s/deployment.yaml
kubectl -n apps set image deployment/blog blog=harbor.nineleaves.cn/apps/blog:dev
访问
Languages
Python
94.8%
Dockerfile
5.2%