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