You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

苹果M1设备搭建Flink 1.13 Playground时maven镜像构建失败如何解决

问题解决方法

方案1:使用Rosetta模拟x86_64架构运行(无需修改镜像配置,优先推荐)

  • 先打开Docker Desktop设置,进入Features in Development页面,勾选Use Rosetta for x86/amd64 emulation on Apple Silicon,保存后重启Docker生效
  • 直接在运行docker-compose的命令前添加架构指定参数,不需要修改任何原有Dockerfile或docker-compose配置:
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose up -d --build

该方案走系统Rosetta2转译运行所有x86架构镜像,完全兼容官方原有配置,不会出现后续Kafka无消息、类找不到的异常。

方案2:全量替换为ARM64原生镜像(性能更高)

如果不想用转译运行,可以将所有依赖镜像替换为原生支持ARM64架构的版本:

  1. 替换Dockerfile中的基础镜像
    • builder阶段修改为:FROM maven:3.8.6-jdk-8-slim AS builder,该版本官方已提供ARM64构建包
    • 运行阶段Flink基础镜像修改为:FROM flink:1.13.6-scala_2.12-java8,高版本的1.13系列镜像已适配ARM64架构
  2. 修改docker-compose.yaml中的组件镜像
    • Zookeeper镜像替换为confluentinc/cp-zookeeper:7.2.10
    • Kafka镜像替换为confluentinc/cp-kafka:7.2.10
      上述Confluent 7.2.x系列镜像原生支持ARM64架构
  3. 执行构建启动命令:
docker-compose up -d --build

之前尝试失败的原因

  • 仅为builder阶段指定x86架构,运行阶段的Flink、Kafka等组件还是混合架构运行,会出现网络通信、序列化不兼容问题,导致Kafka收不到消息
  • 替换maven镜像时未同步匹配JDK版本,导致构建出的作业Jar包和Flink运行环境的JDK版本不一致,出现类加载异常
  • 单独升级Flink小版本没有解决架构不兼容的核心问题,所以没有效果

内容的提问来源于stack exchange,提问作者Vadim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:48:04