如何在Docker容器中安装go-migrate?M1 Mac环境安装报错求助
解决M1 MacBook上Docker安装go-migrate失败的问题
你遇到的exit code: 100错误,核心原因是M1的arm64架构与默认golang:1.20.3镜像的amd64架构不兼容,导致packagecloud的安装脚本无法找到对应架构的deb包。以下是两种可行的解决方法:
方案一:直接下载预编译二进制(推荐)
跳过deb包安装流程,直接从官方仓库下载对应架构的预编译二进制文件,兼容性更好:
FROM golang:1.20.3 # 自动适配容器架构下载go-migrate二进制 RUN ARCH=$(dpkg --print-architecture) && \ curl -L https://github.com/golang-migrate/migrate/releases/download/v4.15.2/migrate.linux-${ARCH}.tar.gz | tar xz && \ mv migrate /usr/bin/migrate && \ chmod +x /usr/bin/migrate # 验证安装有效性 RUN migrate --version
方案二:指定arm64架构镜像并调整安装脚本
若坚持使用deb包安装,需要明确指定arm64架构的基础镜像,并在执行安装脚本时指定架构参数:
FROM --platform=linux/arm64 golang:1.20.3 # 安装依赖并指定架构运行packagecloud脚本 RUN apt-get update && apt-get install -y curl && \ curl -s https://packagecloud.io/install/repositories/golang-migrate/migrate/script.deb.sh | bash -s -- --arm64 && \ apt-get install -y migrate
内容的提问来源于stack exchange,提问作者Matheus Weber
相关产品推荐
相关产品推荐

