Mig*_*Slv 65 docker windows-10 docker-image docker-build docker-desktop
我收到错误:
无法使用前端 dockerfile.v0 解决:无法创建 LLB 定义:清单中的平台不匹配
构建以下 Dockerfile 时:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8
COPY . /inetpub/wwwroot
Run Code Online (Sandbox Code Playgroud)
Mig*_*Slv 84
原因很简单。我的 Docker 桌面在 Linux 容器上运行,并且该映像是从 Windows 映像构建的。
只需切换到 Windows 容器即可解决问题。
该消息毫无线索,所以我希望这可以为其他人节省一些时间。
kon*_*dev 48
就我而言,我使用配备M1处理器的 Mac 来运行 Python 图像。我的docker-compose和Dockerfile如下所示:
docker-compose.yml
version: '3.7'
services:
words_bot:
build: .
restart: unless-stopped
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM python:3-onbuild
COPY . /usr/src/app
CMD ["python", "-m", "bot"]
Run Code Online (Sandbox Code Playgroud)
该图像似乎需要x86主机架构,因此我收到了 OP 所指的错误。
在我将platform: linux/amd64添加到docker-compose.yml后,一切开始按预期工作:
version: '3.7'
services:
cng_words_bot:
build: .
platform: linux/amd64
restart: unless-stopped
Run Code Online (Sandbox Code Playgroud)
Docker 与某些架构(例如 ARM 架构(例如M1 ))混淆了。确保指定架构(平台)。
services:
service-name:
platform: linux/x86_64. # Specify the architecture here
image: some-image
Run Code Online (Sandbox Code Playgroud)
更新:
如果您使用的是 Apple Silicon Chip 机器(arm 架构),您应该在 Docker Desktop 上激活以下功能以实现更好的虚拟化:
Use Virtualization frameworkUse Rosetta for x86/amd64 emulation on Apple Silicon
它将使用Rosetta 2模拟器而不是模拟器qemu,区别非常明显。
| 归档时间: |
|
| 查看次数: |
90930 次 |
| 最近记录: |