You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Docker镜像遇元数据加载错误,我的Dockerfile存在什么问题?

解决Docker拉取amd64/nginx:stable镜像的平台匹配错误问题

问题核心

构建时触发以下错误:

ERROR: failed to solve: amd64/nginx:stable: failed to resolve source metadata for docker.io/amd64/nginx:stable: no match for platform in manifest: not found

解决方案

调整Dockerfile与构建参数

amd64/nginx镜像仓库已被官方废弃,官方统一使用主nginx镜像仓库(支持多架构),需按以下方式修改:

  1. 修改Dockerfile的FROM指令
    将原Dockerfile第一行替换为:

    FROM nginx:stable
    COPY ./nginx/default.conf /etc/nginx/conf.d
    COPY ./nginx/proxy.conf /etc/nginx/includes/proxy.conf
    COPY ./data/ /var/www/html
    
  2. 构建时指定amd64平台
    在构建命令中添加--platform linux/amd64参数,强制拉取amd64架构的镜像:

    VERSION="v20240520"
    docker build --platform linux/amd64 --no-cache --rm --force-rm -t proxy:${VERSION} .
    

备选方案:Dockerfile内直接指定平台

若希望在Dockerfile中明确声明架构,可写成:

FROM --platform=linux/amd64 nginx:stable
COPY ./nginx/default.conf /etc/nginx/conf.d
COPY ./nginx/proxy.conf /etc/nginx/includes/proxy.conf
COPY ./data/ /var/www/html

此时无需修改构建命令,直接执行原命令即可完成构建。

原因说明

原amd64/nginx是早期单架构镜像仓库,官方现已将其合并到主nginx仓库(提供多架构支持)。如果你的本地Docker环境默认平台不是amd64(比如M系列Mac的arm64),直接拉取废弃的amd64/nginx:stable会因仓库不存在失败,使用主仓库并指定平台即可解决问题。

内容的提问来源于stack exchange,提问作者jnemecz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:52:02