docker容器环境安装记录(MAC M1)(完善中)

0、背景

在MAC M1中搭建商城项目环境时,采用docker统一管理开发工具,期间碰到了许多环境安装问题,做个总结。

1、安装redis

  • 在宿主机新建redis.conf文件
  • 运行创建容器命令,进行容器创建、端口映射、文件挂载、以指定配置文件启动:
    docker run -d \ --name my-redis \ -v /Users/chenzhouyuan/Public/work/environment/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \ -v /Users/chenzhouyuan/Public/work/environment/docker/redis/data:/data \ -p 6379:6379 \ redis redis-server /usr/local/etc/redis/redis.conf
    未解决的问题:运行命令后,redis-server未正常启动,需要在docker容器中手动输入命令“redis redis-server /usr/local/etc/redis/redis.conf”,检查后发现网络、配置文件、文件权限均无问题,暂不知原因。(可能是mac M1平台的bug?)

2、安装xxl-job

错误描述
docker容器中xxl-job无法连接宿主机的mysql。原因是访问宿主机mysql,需要使用局域网,且mysql需要赋予此ip访问权限‘
错误提示在这里插入图片描述
解决方式
需要在mysql中执行sql命令,添加指定ip地址账号的访问权限,输入:

CREATE USER 'root'@'192.168.6.182' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.6.182' WITH GRANT OPTION;
FLUSH PRIVILEGES;

连接通过,xxl-job的web页面访问正常
在这里插入图片描述
其他
M1 mac对xxl-job容器同样有兼容性问题,需要参考安装rocketmq容器时的源代码编译方式。

3、安装rocketmq

问题描述
需要安装rocketmq-namesrv、rocketmq-broker、rocketmq-console。运行docker容器时,rocket-console的web页面无法显示,docker日志为空。原因是amd64镜像的兼容性问题,需要更换成arm64镜像,因此需要下载源代码进行本地编译和镜像打包。

解决方式
1、从apche的账号中git clone下来源代码:包含rocketmq和dashboard(新版本console已经重命名为dashboard)
git clone https://github.com/apache/rocketmq-docker.git
git clone https://github.com/apache/rocketmq-dashboard.git
2、先用rocketmq-docker搭建namesrv和broker,因为官方源代码自带生成docker镜像的相关脚本,直接使用即可。

进入刚才下载的源码根目录,找到image-build:
cd image-build
生成镜像:
sh build-image.sh 4.8.0 centos
生成容器并运行:
docker run ...

3、接下来编译dashboard,需要手动编译项目。

  • 修改项目中的Dockerfile,将依赖的jdk改成支持arm64芯片的openjdk8
    在这里插入图片描述
  • 构建后发现部分依赖包缺失,于是从中央仓库(例如:https://mvnrepository.com/artifact/io.grpc/grpc-api/1.50.0)下载无法识别的依赖包:grpc-api、grpc-core,将jar包加载到项目中;
  • 运行mvn package打包项目为jar包(跳过测试),并生成镜像:
    mvn clean package -Dmaven.test.skip=true docker:build
  • 新建broker.conf文件,按需修改docker-compose.yml文件:
    在这里插入图片描述
    在这里插入图片描述

4、运行docker-compose生成容器
docker-compose -f docker-compose.yml up -d

参考文献
文献1
文献2

4、安装mysql

运行命令:
docker run -p 3307:3306 --restart always --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
未解决的问题:mac宿主机的navicat无法连接容器中的mysql,即使已经做了端口映射,暂时使用宿主机本地的mysql8.0搭建。

5、安装nacos

未解决的问题:同样有arm64和amd64兼容性的问题,暂未更换镜像
在这里插入图片描述

6、其他:安装skywalking、seata-server、sentinel(可选)

暂无异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/295253.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python面试题收录】Python的深浅拷贝

一、Python的深浅拷贝的区别 在Python中,深拷贝和浅拷贝是两种不同的对象复制机制,它们的主要区别在于如何处理对象内部所包含的可变或不可变类型的子对象。 浅拷贝 是指创建一个新的对象,但它只复制了原对象的第一层内容,也就是说…

Linux|centos7|postgresql数据库主从复制之异步还是同步的问题

前言: postgresql数据库是一个比较先进的中型关系型数据库,原本以为repmgr和基于repmgr的主从复制是挺简单的一个事情,但现实很快就给我教育了,原来postgresql和MySQL一样的,也是有异步或者同步的复制区别的 Postgre…

运放知识点总结

目录 一、运放基础知识 (operational amplifier) 1.由来 2.用途 3.符号 4.内部结构​编辑 5.虚短虚断 二、同相放大电路 (Non-inverting Amplifier) 三、反相放大电路 (Inverting Amplifier) 四、差分放大电路 (Difference Amplifier) 五、加法…

redis 数据库的安装及使用方法

目录 一 关系数据库与非关系型数据库 (一)关系型数据库 1,关系型数据库是什么 2,主流的关系型数据库有哪些 3,关系型数据库注意事项 (二)非关系型数据库 1,非关系型数据库是…

如果在 Ubuntu 系统中两个设备出现两个相同的端口号解决方案

问题描述: 自己的移动机器人在为激光雷达和IMU配置动态指定的端口时,发现激光雷达和深度相机配置的 idVendor 和 idProduct 相同,但是两个设备都具有不同的ttyUSB号,如下图所示 idVendor:代表着设备的生产商ID,由USB设…

EFK(elasticsearch+filebeat+kibana)日志分析平台搭建

本文是记录一下EFK日志平台的搭建过程 项目背景: 此次搭建的日志分析平台主要是采集服务器上的java服务的log日志(输出的日志已经是json格式),这些日志都已经按照不同环境输出到/home/dev /home/test1 /home/test2 目录下了,按照不同的应…

Mybatis——一对一映射

一对一映射 预置条件 在某网络购物系统中,一个用户只能拥有一个购物车,用户与购物车的关系可以设计为一对一关系 数据库表结构(唯一外键关联) 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …

在flutter中添加video_player【视频播放插件】

添加插件依赖 dependencies:video_player: ^2.8.3插件的用途 在Flutter框架中,video_player 插件是一个专门用于播放视频的插件。它允许开发者在Flutter应用中嵌入视频播放器,并提供了一系列功能来控制和定制视频播放体验。这个插件对于需要在应用中展…

舞蹈网站制作分享,舞蹈培训商城网站设计案例分享,wordpress主题分享

嘿,朋友们!今天我要跟你们唠一唠一个超级酷炫的舞蹈培训商城网站设计案例。 咱先说说这个网站的目标哈,那就是得让喜欢舞蹈的小伙伴们能够轻轻松松找到自己心水的课程和商品。 那制作过程都有啥呢?别急,听我慢慢道来。…

论文笔记 - :DIGGING INTO OUTPUT REPRESENTATION FOR MONOCULAR 3D OBJECT DETECTION

Title: 深入研究单目 3D 物体检测的输出表示 Abstract 单目 3D 对象检测旨在从单个图像中识别和定位 3D 空间中的对象。最近的研究取得了显着的进展,而所有这些研究都遵循基于 LiDAR 的 3D 检测中的典型输出表示。 然而,在本文中,我们认为…

超舒适SUV豪华再进化:比亚迪全新腾势N7发布

钟爱SUV的小伙伴们,想必对比亚迪旗下的腾势N7都不会感到陌生。近日,比亚迪正式发布了全新腾势N7,新车型不但继承了腾势品牌一贯的豪华品质,而且还在智能、舒适、便利等方面实现了全面升级,成为百万级超舒适SUV市场的佼…

VMware-16.0配置虚拟机网络模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络?二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…

数据结构进阶篇 之【选择排序】详细讲解(选择排序,堆排序)

民以食为天,我以乐为先 嘴上来的嘘寒问暖,不如直接打笔巨款 一、选择排序 1.直接选择排序 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 直接选择排序的特性总结 2.堆排序 跳转链接:数据结构 之 堆的应用 二、完结撒❀ –❀–❀–❀…

Apache Paimon实时数据糊介绍

Apache Paimon 是一种湖格式,可以使用 Flink 和 Spark 构建实时 数据糊 架构,用于流式和批处理操作。Paimon 创新地将湖格式和 LSM(日志结构合并树)结构相结合,将实时流式更新引入湖架构中。 Paimon 提供以下核心功能: 实时更新: 主键表支持大规模更新的写入,具有非常…

【JavaEE初阶系列】——一万字带你了解 JUC常见类 以及 线程安全集合类(哈希表)

目录 🚩JUC(java.util.concurrent) 的常见类 🎈Callable 接口 🌈理解 Callable(相关面试题) 🌈理解 FutureTask 📝线程创建方式 🎈 ReentrantLock可重入锁 🌈ReentrantLock 优势&#x…

MATLAB简介、下载及安装

1、MATLAB简介 MATLAB(Matrix Laboratory)是由MathWorks公司开发的一款强大的商业数学软件环境,主要用于数值计算、算法开发、数据可视化、数据分析和基于模型的设计等多种用途。MATLAB被广泛应用在学术研究、工程计算、经济建模、控制系统设…

PW1503限流芯片:可达3A限流,保障USB电源管理安全高效

在电源管理领域,开关的性能直接关系到设备的稳定性和安全性。今天,我们将详细解析一款备受关注的超低RDS(ON)开关——PW1503。它不仅具有可编程的电流限制功能,还集成了多项保护机制,为各类电子设备提供了高…

抖音视频关键词批量下载工具|视频爬虫采集软件

抖音视频批量提取工具,搜索即下载,轻松获取所需视频! 正文: 想要轻松获取抖音上的精彩视频吗?现在,有了我们的抖音视频批量提取工具,一切变得简单易行!Q:290615413无论是针对特定关…

Three.js真实相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机? 在这篇博文中,我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始,然后添加真实的镜头畸变。 具体来说,我们将仔细研究 OpenCV 的两个失真模…

篮球竞赛预约平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)篮球馆,篮球赛,竞赛项目,赛事预约

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…