Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard

这篇具有很好参考价值的文章主要介绍了Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 引言

最近本地启动以前docker安装的rocketmq发现报错了,因为是从老mac迁移过来的,发现支持的芯片还是amd的,于是重新在docker下安装rocketmq,并记录下步骤,方便大家后续参考。

1. 步骤

1、先下载项目源码

git clone https://github.com/apache/rocketmq-docker.git

2、在官方项目rocketmq-docker中已经说明了docker安装rocketmq的步骤,因此我们只需要根据官方的提示执行即可
mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

2、生成镜像

# 进入刚才下载的源码文件夹,然后进入image-build路径
cd image-build
# 这里RMQ-VERSION换成你想要安装的版本,比如我这里是4.8.0
sh build-image.sh 4.8.0 BASE-IMAGE

3、因为是arm芯片,执行这一步会报如下错误:
ERROR: failed to solve: eclipse-temurin:8-jdk-alpine: no match for platform in manifest

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

其原因就是因为这里编译时官方指定的jdk版本是x86的,也就是amd芯片的,很明显和arm芯片不符合,在github中也有该问题的详细解释和解决之法:https://github.com/apache/rocketmq-docker/issues/89

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq
具体的原因大家有兴趣可以详细查看,这里我们直接讲解决的办法,就是在编译的时候,执行系统为centos,让其选择安装为适配了arm的jdk,指令如下:

sh build-image.sh 4.8.0 centos

这里耐心等待下载完成
mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

4、下载完成后,执行docker image可以查看镜像,如下最新的一个就是我们刚刚编译的镜像,我这里底下的就是之前amd架构的镜像,已经不能适用
mac安装rocketmq,# RocketMQ,macos,docker,rocketmq
5、接下来我们继续编译rocketmq管理后台的镜像,当然如果你不需要可以跳过这步,早期版本管理后台是在rocketmq项目中的rocketmq-console模块,现在已经单独提取出来,叫rocketmq-dashboard项目。项目地址:https://github.com/apache/rocketmq-dashboard

该项目简介中也告诉我们docker的安装方法了,但官方编译的镜像也是基于amd版的jdk的,需要我们单独编译

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq
6、下载源码到本地

git clone https://github.com/apache/rocketmq-dashboard.git

7、修改项目src/main/docker下的Dockerfile文件,将其中的java调整为支持arm芯片的版本openjdk:8

#FROM java:8
FROM openjdk:8
VOLUME /tmp
ADD rocketmq-dashboard-*.jar rocketmq-dashboard.jar
RUN sh -c 'touch /rocketmq-dashboard.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /rocketmq-dashboard.jar" ]

8、因为项目是maven项目,我们通过maven指令打包项目,并通过docker build将其打包镜像

mvn clean package -Dmaven.test.skip=true docker:build

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

11、查看镜像

docker images

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

12、本地创建broker.conf配置文件,我们映射到容器中,方便后续调整,这里如果你需要配置其他的配置项,也可以添加

brokerClusterName = DefaultCluster
brokerName = broker
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 你的本机ip, 注意不要写localhost,127.0.0.1等,因为这是放到docker容器中的,我们需要指向mac本机
brokerIP1 = 192.168.244.1

13、创建docker-compose.yml配置文件,用于生成容器

version: '3'
services:
  namesrv:
    image: apache/rocketmq:4.8.0
    container_name: rocketmq-namesrv
    ports:
      - 9876:9876
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:4.8.0
    container_name: rocketmq-broker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
    # 这里的broker.conf路径就是上一步你本机创建的文件路径
    - /Library/software/dockerdata/rocketmq_arm/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf
    depends_on:
      - namesrv
  mqdashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: rocketmq-dashboard
    ports:
      - 8180:8080
    environment:
      JAVA_OPTS: -Drocketmq.config.namesrvAddrs=namesrv:9876 -Drocketmq.config.isVIPChannel=false
    depends_on:
      - namesrv

13、执行docker-compose生成容器

docker-compose -f docker-compose.yml up -d

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

14、docker中可以看到3个容器启动成功
mac安装rocketmq,# RocketMQ,macos,docker,rocketmq

15、访问:localhost:8180, 这里端口和你上述docker-compose中配置的映射端口保持一致
mac安装rocketmq,# RocketMQ,macos,docker,rocketmq
安装完成

2. 测试

最后发送几条消息进行测试一下

import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;

import java.nio.charset.StandardCharsets;


/**
 * @author benjamin_5
 * @Description
 * @date 2024/2/25
 */
public class ProducerDemo {

    public static void main(String[] args) throws MQClientException, MQBrokerException, RemotingException, InterruptedException {
        DefaultMQProducer producer = new DefaultMQProducer("group_test");

        producer.setNamesrvAddr("localhost:9876");
        producer.setVipChannelEnabled(false);
        
        // 启动实例
        producer.start();

        for (int i = 0; i < 10; i++) {
            Message msg = new Message("topic_test", "tag_test", ("hello "+ i).getBytes(StandardCharsets.UTF_8));
            SendResult send = producer.send(msg, 10000);
            System.out.println(send);
        }
        producer.shutdown();

    }
}

如果出现连接超时的问题invokSync call timeout,先检查下broker.conf中配置的ip是否是本机ip

确认无误后mac执行如下指令,重新设置一下本机本地hostname

scutil --set HostName $(scutil --get LocalHostName)

mac安装rocketmq,# RocketMQ,macos,docker,rocketmq文章来源地址https://www.toymoban.com/news/detail-861682.html

到了这里,关于Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mac m1使用docker安装kafka

    1.拉取镜像 docker pull zookeeper docker pull wurstmeister/kafka 2.启动zookeeper docker run -d --name zookeeper -p 2181:2181 zookeeper 3.设置zookeeper容器对外服务的ip Zookeeper_Server_IP=$(docker inspect zookeeper --format=\\\'{{ .NetworkSettings.IPAddress }}\\\') 4.启动kafka docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOO

    2024年02月13日
    浏览(22)
  • mac m1 docker 安装kafka和zookeeper

    获取本地ip地址  ifconfig en0   192.168.0.105.   下面的ip都会使用到 1、拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 2、启动容器 启动 zookeeper docker run -d --name zookeeper -p 2181:2181 映射 3、 启动 kafka 注意,kafka 依赖 zookeeper,启动 kafka 前需要先启动 zookeeper。 这边端口

    2024年02月10日
    浏览(18)
  • M1 mac 直接安装x86 centos Docker

    安装M1 DockerDesktop https://www.docker.com/products/docker-desktop/ 打开设置DockerEngine 将下列插入进去 拉取CentOS系统 创建CentOS(x86)容器 在我的 M1 Mac 上,我可以从 Docker Hub 运行 Ubuntu 映像的 arm64 和 amd64 版本。uname 提供的机器硬件名称证明了这一点。 因为Docker默认创建的是arm架构的Ce

    2024年02月13日
    浏览(22)
  • Mac M系列芯片(M1/M2)安装Docker

    通过Homebrew安装 安装完成后,打开Docker会提示CPU架构不匹配,无法正常启动Docker 在Docker官网下载M芯片适用的.dmg安装包  安装完成后即可正常启动 配置国内镜像源 点击菜单栏的Docker图标,打开Settings... Settings...界面如下,切换到Docker Engine,增加镜像源配置(注意JSON格式),

    2024年02月16日
    浏览(25)
  • M1芯片Mac安装brew和brew常用命令(附:安装docker)

    mac终端安装brew: 如果上面这条命令出现问题则需要配置环境变量: vim /etc/profile 通过上面命令编辑添加两条环境变量 需要添加的原因是因为m1芯片的mac电脑上的brew安装包位置不是在以前的/usr/local而是/opt/homebrew。改完之后在安装上面那个安装命令就可以啦。 brew常用命令 1、

    2024年02月08日
    浏览(33)
  • Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)

    升级homebrew,命令如下: 通过命令 brew install redis 安装Redis,异常如下: 参考博文MAC 升级后brew报错后,运行命令 brew update-reset ,结果如下: 查看homebrew版本( brew --version ),结果为: 最终解决 上述 brew update-reset 升级命令即为该问题的解决办法。homebrew升级完成后,重新运行

    2024年02月07日
    浏览(27)
  • Mac M系列芯片(M1/M2)Docker安装Nacos Server单机版

    本文基于Nacos2.1.2进行说明 DockerHub镜像仓库-nacos镜像 可以看到只有-slim版本有arm64版本,因此我们用v2.1.2-slim这个版本(笔者亲测v2.1.2的linux/amd64版本在M系列芯片上不可用,nacos启动会报错)。 注意版本是Tags前面有个v,不是2.1.2;Docker会根据CPU架构拉取对应的架构版本。 查看

    2024年02月05日
    浏览(31)
  • Mac m1 docker安装 elasticsearch+kibana、zookeeper+kafka(不指定ip方式,验证无误)

    🌸 🌸 重点写在前面——注意docker本机地址请使用 host.docker.internal 🌸 🌸 由于 macOS 的 docker 底层实现的不同,主要原因是 macOS 的 docker 在容器和宿主之间无法通过 ip 直接通信。因此在安装的时候需要特殊注意与 ip 相关的设置, 当容器需要访问宿主ip时 ,需要使用 docker.f

    2024年02月11日
    浏览(28)
  • Mac M系列芯片(M1/M2)Docker安装MySQL并持久化数据与配置

    本文基于MySQL5.7.42进行说明 DockerHub镜像仓库-mysql镜像 常规命令(不适用),提示 no matching manifest for linux/arm64/v8 in the manifest list entries  到DockerHub查看MySQL5.7.42的镜像,可以看到确实没有 linux/arm64/v8 版本的镜像  因此我们要另辟蹊径,加入指定架构的参数进行拉取 --platform li

    2024年02月04日
    浏览(28)
  • Mac(M1/M2)通过wine运行windows程序

      双击文件解压缩 ,就得到了一个Wineskin Winery.app 再把这个app拖到应用程序文件夹(最后拖到个人应用程序文件夹)    然后打开这个应用(右键打开,会提示可能是恶意软件,点确定打开)    在这个界面点+号,再点下载和安装     点OK 然后可能下载一段时间,耐心等待

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包