问题 - 在 Macbook M1 芯片上构建 Docker 映像 - 作为 linux/amd64

Ana*_*mra 4 macos docker dockerfile docker-image apple-m1

我正在尝试从 Dockerfile 构建以下图像。

Dockerfile 源# https://github.com/AykutSarac/jsoncrack.com/blob/main/Dockerfile

Docker主机规格:Macbook Pro M1芯片

我检查了以下帖子: standard_init_linux.go:178: exec user process引起“exec format error”

我在顶部添加了额外的行:

#!/bin/bash
# Build for AMD64
# Builder
FROM node:14-buster as builder
WORKDIR /src
COPY . /src
RUN yarn install --legacy-peer-deps
RUN yarn run build

# App
FROM nginxinc/nginx-unprivileged
COPY --from=builder /src/out /app
COPY default.conf /etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令创建了图像:

docker build -t username/jsoncrack-1-amd64 . --no-cache=true --platform=linux/amd64 
Run Code Online (Sandbox Code Playgroud)

推入时仍显示图像,因为手臂类型不是

关于如何从 Dockerfile 中构建为 Linux/AMD64 的映像有什么想法吗?

注意:我可以在 M1 Apple Macbook 上创建其他 docker 镜像,没有任何问题,问题仅出在这个 dockerfile 上。

谢谢

Ana*_*mra 6

实际上,我必须删除与映像构建相匹配的旧映像,这最终会推送旧版本的 ARM,而不是 AMD。

上述步骤一切正常(只需确保清理本地存储的图像)