跳转至

acr-build-push.yml — ACR 镜像构建推送

作用

在 push main / master 或手动触发时,构建并推送以下镜像到 阿里云个人 ACR

  • backend
  • storage
  • myapp
  • agent-frontend
  • infinitecanvas-frontend

不包含 postgresredis 基础镜像(需本地 make ack-push-base)。

触发条件

on:
  push:
    branches: [main, master]
    paths:
      - 'src/**'
      - 'Dockerfile*'
      - 'pyproject.toml'
      - 'poetry.lock'
      - 'deploy/ACK/**'
  workflow_dispatch:
事件 何时跑
push 到 main,且改动命中 paths 自动
Actions → ACR Build Push → Run workflow 手动

所需配置

名称 类型 说明
ACR_USERNAME Secret 与根目录 .env 中一致
ACR_PASSWORD Secret 与根目录 .env 中一致
ACR_REGISTRY Variable 个人版公网域名 crpi-*.personal.cr.aliyuncs.com
ACR_NAMESPACE Variable tuxian;未设时默认 tuxian

镜像 tag:

Tag 用途
latest 兼容别名(勿单独依赖其回滚)
${{ github.sha }} 不可变全量 SHA,可作 ack-rollbackTAG=

本地 make ack-push 使用另一套不可变格式:yyyyMMdd-HHmm-<短SHA>,同样可回滚。

与 ACK 部署的关系

push main → acr-build-push.yml → ACR(公网:latest + sha)
                                      │
本地 make ack-push / 手写 image-tags.env
本地 make ack-deploy ────────────────► ACK pull(VPC + 不可变 newTag)
  • CI 只负责 build + push,不会 kubectl apply
  • 部署到 ACK 仍需本地:make ack-deploy(需 kubeconfig)
  • 用 CI 产物部署时:把 image-tags.env 中对应服务设为 ${{ github.sha }}ack-deploy,或 make ack-rollback SERVICE=infinitecanvas-frontend TAG=<github.sha>
  • ACK 节点 pull 使用 VPC 域名(ACR_VPC_REGISTRY),由 make ack-secrets 写入 kustomization

回滚说明见 ACK README · 镜像版本与回滚

相关文档