Skip to content

建议发布 linux/arm64 多架构 Docker 镜像(Dockerfile 已兼容,仅需 CI 启用 buildx) #77

Description

@yxq113513

问题描述

在 Apple Silicon Mac(以及其他 ARM64 设备)上执行:

docker pull fqscfqj/y2a-auto:latest

报错:

no matching manifest for linux/arm64/v8 in the manifest list entries

查看 Docker Hub 的 manifest,latest(及其他 tag)目前只包含 linux/amd64 一种架构。

已确认的情况

看了一下仓库里的 Dockerfile,其实 arm64 兼容性已经具备,只是 CI 没有发布多架构镜像:

  • ffmpeg-builder 阶段通过 TARGETARCH 明确处理了 arm64/aarch64 分支(BtbN 的 linuxarm64 构建、
    johnvansickle 的 arm64-static 都有对应下载地址);
  • 基础镜像 python:3.11-slimdebian:bookworm-slim 均为多架构镜像;
  • torch==2.6.0 / torchaudio==2.6.0 在 PyTorch 的 CPU index 上有 aarch64 轮子。

建议

在 GitHub Actions 构建流程中启用 buildx 多平台构建,例如:

- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
  with:
    platforms: linux/amd64,linux/arm64
    push: true

即可发布同时覆盖两种架构的 manifest list。

受益场景

  • Apple Silicon Mac 本地部署(目前只能 --platform linux/amd64 走 Rosetta 转译,
    ffmpeg 转码、ASR 等 CPU 密集环节性能损耗明显);
  • ARM 云主机(AWS Graviton、Oracle Ampere 等);
  • NAS / 树莓派等 ARM 设备。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions