diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fddd71b..9615bf5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -249,6 +249,15 @@ jobs: working-directory: infrastructure run: docker compose config --quiet + # compose 现在用的是 quay.io/minio/minio:latest(滚动 tag,见该文件注释): + # Docker Hub 上的 minio/minio 仓库已被整体移除,而本机访问不到 quay 的 tag API + # 去核实某个具体 RELEASE tag 是否仍在。故先用 latest 跑通,并在这里把实际 + # 拉取到的版本打进日志 —— 日后即可据此把版本钉死,恢复可复现性。 + - name: 拉取并打印 minio 实际版本(为后续钉版留证据) + run: | + docker pull quay.io/minio/minio:latest + docker run --rm quay.io/minio/minio:latest --version + # 保证库为全新:seed 用 `ON CONFLICT (username) DO NOTHING`,若卷是上一轮残留, # 账号密码会停留在上一轮的 `E2E_OPERATOR_PASSWORD` 上 → 本轮登录 401(表现为各种业务失败)。 - name: 清理可能的残留栈与数据卷 diff --git a/infrastructure/docker-compose.prod.yml b/infrastructure/docker-compose.prod.yml index b44cc68..190188f 100644 --- a/infrastructure/docker-compose.prod.yml +++ b/infrastructure/docker-compose.prod.yml @@ -40,7 +40,10 @@ services: restart: unless-stopped minio: - image: minio/minio:latest + # 同 docker-compose.yml 的 minio 条目:Docker Hub 上 minio/minio 仓库已被整体移除 + # (MinIO 自 2025-10 起停止发布容器镜像,仅源码分发),生产环境同样拉不到。 + # 改为仍在提供镜像的 quay.io —— 这是真实的部署阻塞,不只是 CI 问题。 + image: quay.io/minio/minio:latest container_name: danyang-match-minio command: server /data --console-address ":9001" environment: diff --git a/infrastructure/docker-compose.staging.yml b/infrastructure/docker-compose.staging.yml index ae40ed2..e3b008a 100644 --- a/infrastructure/docker-compose.staging.yml +++ b/infrastructure/docker-compose.staging.yml @@ -32,7 +32,10 @@ services: retries: 5 minio: - image: minio/minio:latest + # 同 docker-compose.yml 的 minio 条目:Docker Hub 上 minio/minio 仓库已被整体移除 + # (MinIO 自 2025-10 起停止发布容器镜像,仅源码分发),staging 环境同样拉不到。 + # 改为仍在提供镜像的 quay.io。 + image: quay.io/minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: staging diff --git a/infrastructure/docker-compose.yml b/infrastructure/docker-compose.yml index b832cc9..a9bbce2 100644 --- a/infrastructure/docker-compose.yml +++ b/infrastructure/docker-compose.yml @@ -33,9 +33,25 @@ services: retries: 5 minio: - # pin 到确定版本:`latest` 是滚动 tag,MinIO 已多次改动镜像内容(如移除内嵌 console), - # 用 `latest` 会让 CI 的 E2E 拉到一个与本地验证时不同的镜像 → 不可复现的偶发失败。 - image: minio/minio:RELEASE.2025-09-07T16-13-09Z + # 2026-09-22 修正:镜像源从 Docker Hub 迁到 quay.io。 + # + # 原 `minio/minio:RELEASE.2025-09-07T16-13-09Z` 在 CI 上根本拉不到,Actions 报: + # pull access denied for minio/minio, repository does not exist + # 问题不在 tag,而在**整个仓库已从 Docker Hub 移除**:MinIO 自 2025-10 起停止发布 + # 容器镜像(改为仅源码分发),其 GitHub 仓库于 2026-02 归档;Docker Hub 上 + # minio/minio 与 minio/mc 现均返回 404。quay.io/minio/minio 仍在提供镜像。 + # + # 本机此前正是用 quay.io 的镜像重打 tag 顶替才跑通的(见 known-risks KR-01), + # 但那只是**本地绕过**、没有同步回仓库,于是「本地能起栈、CI 拉不到」。 + # 现在统一改为 quay.io,让本地与 CI 拉同一个镜像,消除这处不一致。 + # + # 已知偏离:此处用 latest 而非钉版。原因是本机访问不到 quay.io 的 tag API, + # 无法核实某个具体 RELEASE tag 是否仍然存在(quay 上的镜像已冻结, + # 最后发布为 2025-09)。latest 已被多个下游项目实测可用;e2e job 会打印 + # 实际拉取到的版本,供日后补钉版。 + # 长期风险:quay 上的 MinIO 镜像同样可能下架,届时需自建镜像或迁移到其他 + # S3 兼容存储 —— 这也意味着「依赖第三方镜像」本身就是一条外部依赖风险。 + image: quay.io/minio/minio:latest container_name: danyang-match-minio command: server /data --console-address ":9001" environment: