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

Mac M1环境Docker部署ActiveMQ Artemis报错求助

解决Mac M1 Docker环境下ActiveMQ Artemis启动故障

故障原因分析

从报错信息来看,核心问题集中在两点:

  1. 架构兼容性不匹配:Mac M1基于arm64架构,quay.io/artemiscloud/activemq-artemis-broker默认镜像大概率仅适配amd64架构,导致系统调用失败(Cannot initialize queue:Function not implemented)。
  2. 镜像内部文件异常:启动脚本找不到/home/jboss/broker/bin/artemis可执行文件,这是架构不兼容引发的镜像内部文件结构紊乱导致的。

解决方案

方案1:替换为适配arm64的官方镜像

改用Apache官方维护的多架构镜像,原生支持arm64架构,避免兼容性问题:
修改docker-compose.yml的image字段及对应环境变量:

version: '2'

services:
  artemis:
    image: apache/activemq-artemis:latest  # 替换为官方多架构镜像
    ports:
      - "8161:8161"
      - "61616:61616"
      - "5672:5672"
    environment:
       ARTEMIS_USERNAME: "admin"
       ARTEMIS_PASSWORD: "admin"
       ARTEMIS_ALLOW_ANONYMOUS: "false"  # 官方镜像需显式配置匿名访问规则
    networks:
      - amqp-quickstart-network
networks:
  amqp-quickstart-network:

方案2:强制以amd64架构运行原镜像(依赖Rosetta 2)

如果需要继续使用原镜像,可通过Docker的platform参数指定运行架构,借助Rosetta 2转译解决兼容性问题:

version: '2'

services:
  artemis:
    image: quay.io/artemiscloud/activemq-artemis-broker
    platform: linux/amd64  # 指定以amd64架构运行
    ports:
      - "8161:8161"
      - "61616:61616"
      - "5672:5672"
    environment:
       ARTEMIS_USERNAME: "admin"
       ARTEMIS_PASSWORD: "admin"
    networks:
      - amqp-quickstart-network
networks:
  amqp-quickstart-network:

方案3:清理旧容器/镜像后重新部署

无论采用上述哪种方案,建议先清理旧的容器和镜像,避免缓存干扰:

# 停止并删除现有容器
docker-compose down
# 删除旧镜像(根据选择的镜像调整命令)
docker rmi quay.io/artemiscloud/activemq-artemis-broker
# 拉取新镜像(以官方镜像为例)
docker pull apache/activemq-artemis:latest
# 重新启动服务
docker-compose up -d

部署验证

启动成功后,访问http://localhost:8161,使用admin/admin登录控制台,同时检查端口监听状态:

# 检查端口是否正常监听
lsof -i :8161
lsof -i :61616
lsof -i :5672

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:03:17