# 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"]