Mac M2通过Docker Compose部署Apache Superset时平台架构报错求助
解决Mac M2上Docker Compose部署Apache Superset的平台架构报错
问题场景
在Mac M2(ARM架构)设备上使用Docker Compose部署Apache Superset时,触发架构不兼容错误。
执行的部署命令
docker compose up
报错输出
WARN[0000] 未设置 "CYPRESS_CONFIG" 变量,将默认设为空字符串。 WARN[0000] 未设置 "CYPRESS_CONFIG" 变量,将默认设为空字符串。 [+] 运行 1/1 ! superset-websocket 警告 4.4s [+] 构建中 2.2s (9/12) docker:desktop-linux => [superset-websocket internal] 从Dockerfile加载构建定义 0.0s => => 传输dockerfile: 1.20kB 0.0s => [superset-websocket internal] 加载.dockerignore文件 0.0s => => 传输上下文: 842B 0.0s => [superset-websocket internal] 加载docker.io/library/node:16-alpine的元数据 2.2s => [superset-websocket auth] 获取registry-1.docker.io的library/node拉取token 0.0s => [superset-websocket internal] 加载构建上下文 0.0s => => 传输上下文: 1.80kB 0.0s => [superset-websocket stage-1 1/5] 基于docker.io/library/node:16-alpine@sha256:a1f9d027912b58a7c75be7716c97cfbc6d3099f3a97ed84aa490be9dee20e787构建镜像 0.0s => 已缓存 [superset-websocket stage-1 2/5] 设置工作目录为/home/superset-websocket 0.0s => 已缓存 [superset-websocket build 3/4] 复制当前目录内容到镜像内 0.0s => ERROR [superset-websocket build 4/4] 执行RUN npm ci && npm run build命令 0.0s ------ > [superset-websocket build 4/4] RUN npm ci && npm run build: ------ 构建失败:不支持运行linux/amd64/v8平台的进程,支持的平台为linux/amd64、linux/amd64/v2
已尝试的无效解决方法
尝试设置默认平台变量,但问题未解决:
export DOCKER_DEFAULT_PLATFORM=linux/x86_64/v8
解决方案
方法1:修正默认平台变量
将平台变量设置为Docker支持的架构版本,执行以下命令后重新部署:export DOCKER_DEFAULT_PLATFORM=linux/amd64/v2方法2:在docker-compose.yml中指定平台
如果全局变量设置无效,直接在配置文件中为superset-websocket服务指定兼容平台:services: superset-websocket: platform: linux/amd64/v2 # 保留原有其他配置保存文件后重新执行
docker compose up。方法3:启用Docker Rosetta模拟(推荐)
打开Docker Desktop偏好设置,进入「Features in Development」页面,勾选「Use Rosetta for x86/amd64 emulation on Apple Silicon」,重启Docker后重新部署。
内容的提问来源于stack exchange,提问作者SUNIL KUMAR PRADHAN
相关产品推荐
相关产品推荐

