- Node.js 统一到 node:22-alpine,Go 统一到 golang:1.25-alpine,Python 统一到 python:3.12-slim - pnpm 升级到 11.13.0(corepack),新增 allowBuilds 白名单解决 ERR_PNPM_IGNORED_BUILDS - 新增 packages/shared-py 集中 Python 共享依赖,shared-ts 补充 graphql-yoga/prom-client - api-gateway 修复 go.mod 的 shared-go 依赖 + Dockerfile 改用 repo 根作 context - Python 服务(data-ana/ai)Dockerfile 改用 repo 根作 context + 声明 uv workspace sources - 16 个服务的 Dockerfile + CI + docker-compose.tools.yml 全部对齐版本矩阵 - known-issues.md 沉淀 9 条 pnpm 11 / uv workspace / Go shared-go 迁移经验 - 验证:4 服务完全成功(api-gateway /healthz 200),其余 install 成功(build 失败为预存 TS 错误)
61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
# CI/CD 工具镜像预拉(一次性拉取所有 CI 与构建需要的镜像到本地)
|
||
# 用途:actrunner 的 container job 会优先使用本地镜像缓存,避免每次 CI 联网拉取
|
||
#
|
||
# 用法:
|
||
# docker compose -f infra/docker-compose.tools.yml pull
|
||
#
|
||
# 拉取后可用 docker images 查看所有 edu 相关镜像
|
||
# 这不是常驻服务,只是借用 compose 的批量 pull 能力
|
||
|
||
name: edu-tools
|
||
|
||
services:
|
||
# ===== CI 运行时镜像(actrunner container job 使用)=====
|
||
node-ci:
|
||
image: node:22-alpine
|
||
command: ["echo", "node-ci image pulled"]
|
||
|
||
golang-ci:
|
||
image: golang:1.25-alpine
|
||
command: ["echo", "golang-ci image pulled"]
|
||
|
||
buf-ci:
|
||
image: bufbuild/buf:latest
|
||
command: ["echo", "buf-ci image pulled"]
|
||
|
||
docker-ci:
|
||
image: docker:25-git
|
||
command: ["echo", "docker-ci image pulled"]
|
||
|
||
# ===== 服务构建基础镜像(Dockerfile FROM)=====
|
||
# 所有 TS 服务 + 前端 portal 的 builder 阶段(统一 Node 22)
|
||
node-builder:
|
||
image: node:22-alpine
|
||
command: ["echo", "node-builder image pulled"]
|
||
|
||
# api-gateway + push-gateway 的 builder 阶段(统一 Go 1.25)
|
||
golang-builder:
|
||
image: golang:1.25-alpine
|
||
command: ["echo", "golang-builder image pulled"]
|
||
|
||
# api-gateway + push-gateway 的 runner 阶段
|
||
alpine-runner:
|
||
image: alpine:3.20
|
||
command: ["echo", "alpine-runner image pulled"]
|
||
|
||
# data-ana + ai 的 builder 阶段
|
||
python-builder:
|
||
image: python:3.12-slim
|
||
command: ["echo", "python-builder image pulled"]
|
||
|
||
# ===== 开发/测试基础设施(生产用已有的,不在此管理)=====
|
||
# 服务器已有的 MySQL/Redis 不在此拉取
|
||
# 仅用于本地开发测试环境(docker-compose.dev.yml,如有)
|
||
mysql-dev:
|
||
image: mysql:8.0
|
||
command: ["echo", "mysql-dev image pulled"]
|
||
|
||
redis-dev:
|
||
image: redis:7-alpine
|
||
command: ["echo", "redis-dev image pulled"]
|