Error: Failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest when building docker image
Error: Failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest when building docker image
我收到错误:
failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest
构建以下 Dockerfile 时:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8
COPY . /inetpub/wwwroot
原因很简单,我的 docker 桌面 运行 在 linux 容器上,图像是从 windows 图像构建的。
只需切换到 windows 个容器即可解决问题。
留言内容无厘头,希望能为大家节省一些时间。
在我的例子中,我使用 mac 和 m1 处理器来 运行 python 图像,我的 docker-compose 和 Dockerfile 看起来像这样:
docker-compose.yml
version: '3.7'
services:
words_bot:
build: .
restart: unless-stopped
Dockerfile:
FROM python:3-onbuild
COPY . /usr/src/app
CMD ["python", "-m", "bot"]
似乎图像需要 x86 主机架构,所以我得到了 OP 所指的错误。
在我将 platform: linux/amd64 添加到 docker-compose.yml 之后,一切都按预期开始工作:
version: '3.7'
services:
cng_words_bot:
build: .
platform: linux/amd64
restart: unless-stopped
Docker 与某些架构(例如 M1)混淆。确保指定架构(平台)
services:
service-name:
platform: linux/x86_64. # specify the architecture here
image: some-image
在 docker 文件中为我修复了 M1 上的平台
例如FROM --platform=linux/amd64 amazonlinux:2018.03
在带有 Intel 芯片的 macOS 上构建一个“标准”docker 图像我运行 进入这个。
重新启动 Docker 守护程序为我修复了它。
我收到错误:
failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest
构建以下 Dockerfile 时:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8
COPY . /inetpub/wwwroot
原因很简单,我的 docker 桌面 运行 在 linux 容器上,图像是从 windows 图像构建的。
只需切换到 windows 个容器即可解决问题。
留言内容无厘头,希望能为大家节省一些时间。
在我的例子中,我使用 mac 和 m1 处理器来 运行 python 图像,我的 docker-compose 和 Dockerfile 看起来像这样:
docker-compose.yml
version: '3.7'
services:
words_bot:
build: .
restart: unless-stopped
Dockerfile:
FROM python:3-onbuild
COPY . /usr/src/app
CMD ["python", "-m", "bot"]
似乎图像需要 x86 主机架构,所以我得到了 OP 所指的错误。
在我将 platform: linux/amd64 添加到 docker-compose.yml 之后,一切都按预期开始工作:
version: '3.7'
services:
cng_words_bot:
build: .
platform: linux/amd64
restart: unless-stopped
Docker 与某些架构(例如 M1)混淆。确保指定架构(平台)
services:
service-name:
platform: linux/x86_64. # specify the architecture here
image: some-image
在 docker 文件中为我修复了 M1 上的平台
例如FROM --platform=linux/amd64 amazonlinux:2018.03
在带有 Intel 芯片的 macOS 上构建一个“标准”docker 图像我运行 进入这个。
重新启动 Docker 守护程序为我修复了它。