Mrs*_*kik 94 arm docker docker-compose apple-m1
我想在 MacBook M1 上运行 docker 容器Ganache,但出现以下错误:
The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Run Code Online (Sandbox Code Playgroud)
在此行之后,不会再发生任何其他事情,并且整个过程被卡住,尽管根据活动监视器,qemu-system-aarch64 正在 100% CPU 上运行,直到我按CTRL+ C。
我的 docker 文件来自此存储库。遇到相同的问题后,我尝试找出根本原因,并提出了会遇到相同错误的最小设置。
这是以下的输出docker-compose up --build:
Building ganache
Sending build context to Docker daemon 196.6kB
Step 1/17 : FROM trufflesuite/ganache-cli:v6.9.1
---> 40b011a5f8e5
Step 2/17 : LABEL Unlock <ops@unlock-protocol.com>
---> Using cache
---> aad8a72dac4e
Step 3/17 : RUN apk add --no-cache git openssh bash
---> Using cache
---> 4ca6312438bd
Step 4/17 : RUN apk add --no-cache python python-dev py-pip build-base && pip install virtualenv
---> Using cache
---> 0be290f541ed
Step 5/17 : RUN npm install -g npm@6.4.1
---> Using cache
---> d906d229a768
Step 6/17 : RUN npm install -g yarn
---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
---> Running in 991c1d804fdf
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: '3.2'
services:
ganache:
restart: always
build:
context: ./development
dockerfile: ganache.dockerfile
env_file: ../.env.dev.local
ports:
- 8545:8545
ganache-standup:
image: ganache-standup
build:
context: ./development
dockerfile: ganache.dockerfile
env_file: ../.env.dev.local
entrypoint: ['node', '/standup/prepare-ganache-for-unlock.js']
depends_on:
- ganache
Run Code Online (Sandbox Code Playgroud)
ganache.docker文件:
在配备 Intel 处理器的旧 iMac 上运行整个项目效果很好。
The*_*tou 58
如果您计划在笔记本电脑中运行该映像,则需要针对该特定机器的 CPU 架构构建它。您可以--platform向 docker build (甚至是docker-compose)提供选项来定义要为其构建映像的目标平台。
例如:
docker build --platform linux/arm64 .
Run Code Online (Sandbox Code Playgroud)
Rya*_*yan 47
在 M1 MacBook Pro 上,我已成功使用docker run --platform linux/amd64
例子
docker run --platform linux/amd64 node
Run Code Online (Sandbox Code Playgroud)
Rya*_*yan 30
使用 docker-compose 您还可以选择platform。
version: "2.4"
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.1.1
hostname: zookeeper
container_name: zookeeper
platform: linux/amd64
ports:
- "2181:2181"
Run Code Online (Sandbox Code Playgroud)
我们在使用 localstack 映像时遇到了这个问题。
下面是 docker-compose.yml 的片段
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
image: localstack/localstack:1.2.0
ports:
- "4566:4566"
environment:
- DOCKER_HOST=unix:///var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
一位在 Mac 上使用 M1 芯片组的开发人员遇到了这个问题。
所以方法很少
platform: linux/amd64镜像声明export DOCKER_DEFAULT_PLATFORM=linux/amd64在运行 docker-compose.yml 之前运行此命令image: localstack/localstack:1.2.0-amd64| 归档时间: |
|
| 查看次数: |
137218 次 |
| 最近记录: |