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.hqwc.cn/news/595808.html

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

相关文章

如何备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

2024年AMC10美国数学竞赛还有6个多月就要启动了,那么如何在AMC10比赛中取得好成绩呢?一个被实践的方法是:系统研究和吃透AMC10的历年真题。即使不参加AMC10竞赛,掌握了这些知识和解题思路后初中和高中数学会学得比较轻松、游刃有余…

Spatio-Temporal Pivotal Graph Neural Networks for Traffie Flow Forecasting

摘要:交通流量预测是一个经典的时空数据挖掘问题,具有许多实际应用。,最近,针对该问题提出了各种基于图神经网络(GNN)的方法,并取得了令人印象深刻的预测性能。然而,我们认为大多数现有方法忽视了某些节点(称为关键节点)的重要性,这些节点自然地与多个其他节点表现出…

腾讯云服务器99元一年是真的吗?真的,99元服务器申请入口

腾讯云服务器99元一年是真的吗?真的,99元优惠购买入口 txybk.com/go/99 折合每天8元1个月,腾讯云99元服务器配置为2核2G4M带宽,2024年99元服务器配置最新报价为99元一年,续费也是99元,如下图: …

色彩在设计中的重要性

title: 色彩在设计中的重要性 date: 2024/4/6 19:08:21 updated: 2024/4/6 19:08:21 tags: 色彩心理品牌识别用户体验文化差异创意设计视觉传达易读性 色彩是设计中不可或缺的元素,它不仅可以影响人的情绪和心理状态,还可以在品牌识别、用户体验、文化差…

最短路计数

题目描述 给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1∼N。问从顶点 1 开始,到其他每个点的最短路有几条。 输入描述 第一行包含 2 个正整数 N,M,为图的顶点数与边数。 接下来 M 行,每行两个正整数 x,y,表示…

ELK报错,索引变成只读状态。

问题描述 今天发现当天的索引在ES中并没有创建,logstash中不停的报错: [2021-05-24T05:47:51,904][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({“type”>“cluster_block_exception”, “reason”&g…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

基于SpringBoot+Vue小型企业办公动化系统的设计和开发(源码+部署说明+演示视频+源码介绍+lw)

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

Ubuntu/Centos文件误删恢复

Linux服务器上的文件存储都承载着大量的重要信息。然而,文件误删、软件故障或恶意攻击等风险总是伴随着我们。当这些不幸发生时,如何有效地恢复数据成为了一个亟待解决的问题。幸运的是,有相关的数据恢复工具,它能够帮助我们解决Linux服务器上的文件误删问题。 注意:该软…

Unity性能优化篇(十四) 其他优化细节以及UPR优化分析器

代码优化: 1. 使用AssetBundle作为资源加载方案。 而且经常一起使用的资源可以打在同一个AssetBundle包中。尽量避免同一个资源被打包进多个AB包中。压缩方式尽量使用LZ4,少用或不要用LZMA的压缩方式。如果确定后续开发不会升级Unity版本,则可…

C++不知算法系列之滑动指针

公众号:编程驿站 1. 前言 双指针搜索算法,常见的有左右双指针;快慢双指针;先后双指针以及多指针……其中还包括一类滑动指针。滑动指针也称为滑动窗口指针,其搜索实现即有灵性又透着优雅。 本文通过几个案例聊聊滑动…

【Java EE】初识Spring Web MVC

文章目录 🌴什么是Spring Web MVC?🌸什么是Servlet呢? 🌲MVC 定义🌸再理解Spring MVC 🌳如何学习Spring MVC呢?⭕总结 🌴什么是Spring Web MVC? Spring Web MVC 是基于…