CRMEB多商户商城系统阿里云集群部署教程
注意:
1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区
2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示
一、 创建容器镜像服务,容器镜像服务(aliyun.com) ,个人版本就可以

- 先创建一个命名空间

- 然后创建一个镜像仓库

- 查看并记录镜像公网地址

- 创建镜像,首先保证本地已经安装号docker服务
4.1 登录阿里云docker

docker login --username=你的用户名 registry.cn-hangzhou.aliyuncs.com
Copy
4.2 拉取多商户预制镜像
docker pull leekay0218/crmeb-mer
Copy

4.3 在多商户项目根目录创建Dockerfile文件,内容为
FROM leekay0218/crmeb-mer
MAINTAINER crmeb.com# 复制代码
ADD . /var/www# 设置容器启动后的默认运行目录
WORKDIR /var/www# 默认入口命令
ENTRYPOINT ["/entrypoint.sh"]# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
#CMD []
CMD ["php", "-d", "memory_limit=2048M", "think", "swoole"]
Copy
二、开通阿里云mysql服务 RDS管理控制台 (aliyun.com)
- 开通服务

- 创建数据库,mysql选择5.7


- 配置按照自己的需求选择即可,我这里演示用,所以选择的最低配置

- 这里选择默认即可, 没有的话就创建一个, 后面服务需要选择同一个

- 为了方便使用,直接设置好root密码


- 等待mysql创建完成

- 开通外网地址,自行创建多商户的数据库并导入数据.这个就不做演示了

- 修改sql-mode配置为: NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER


- 刷新检查一下,确保修改成功

- 修改项目根目录.env文件中的mysql配置,如下:
填写配置并保存, 数据库配置完毕了


三、开通redis服务 云数据库Redis版管理控制台 (aliyun.com)
- 创建redis服务,区域和mysql保持一致

- 选择相同的网络配置

- 按照需求选择配置

- 设置redis密码

- 开通完成


- 等待创建完成

- 设置白名单,这里按照自己的需求设置,我这里设置0.0.0.0/0是方便演示,有安全问题


- env文件填写配置并保存, redis配置完毕了


四、 推送镜像
- 在项目根目录执行下面的命令,代码打包镜像推送到阿里云云仓库
docker build -t leekay0218/crmeb-mer .docker tag leekay0218/crmeb-mer 你的公网镜像地址docker push 你的公网镜像地址
Copy
- 推送成功后镜像更新时间会更新

五、 创建阿里云集群服务容器服务ACK_容器服务Kubernetes版_容器_云原生应用平台-阿里云 (aliyun.com)
- 创建集群,选择杭州K区


- 按照自己的需求选择,然后下一步

- 按需求选择负载均衡配置

- 创建集群

- 待集群初始化完毕

- 创建应用


- 选择镜像,tag不用填

- 按照自己的需求选择

- 填写端口,8324

- 创建应用,等待应用初始化完毕



六、 创建服务,获取公网IP
- 创建应用



- 等待应用启动完毕后,访问118.31.68.253/api/config, 有数据说明部署成功;

-
如果失败请检查镜像,可以在本地运行镜像检查是否正常. 本地运行时记得将redis和mysql的访问地址改为外网地址;
-
集群服务使用完毕后,释放时记得删除干净,并单独删除负载均衡服务,避免意外扣费;
七、代码更新及集群配置
-
后端代码更新后需要重新打包镜像并推送到阿里云docker
-
然后点击重新部署

- 修改集群服务器配置
编辑可以修改服务器配置
伸缩可以修改集群服务器数量

- 队列服务
在一个阿里云服务器中再部署一套多商户项目代码, 单独启动多商户的队列服务并运行多商户项目. 保证队列和ws可用
ws需要配置独立的域名单独访问
- 前端项目
在一个阿里云服务器中单独部署多商户的移动端,平台端,商户端. 并使用独立的域名访问, 接口地址使用集群服务的域名
集群部署完毕,感谢浏览,附件中有word文档可下载查看
多商户阿里云集群部署流程.zip
相关文章:
CRMEB多商户商城系统阿里云集群部署教程
注意: 1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区 2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示 一、 创建容器镜像服务,容器镜像服务(aliyun.com) ,个人版本就可以 先创建一个命名空间 然后创建一个镜像仓库 查看并记录镜像公网地址…...
Java第三方登录封装工具类
Java中可以使用第三方登录来简化用户登录流程,常见的第三方登录如QQ、微信、微博等。下面是一个Java封装第三方登录的工具类: import java.io.IOException; import java.util.HashMap; import java.util.Map;import org.apache.http.client.ClientProto…...
BUUCTF学习(四): 文件包含tips
1、介绍 2、hackBar插件安装 教程: Hackbar插件安装-CSDN博客 3、解题 php://filter/readconvert.base64-encode/resource要读取的文件 ?filephp://filter/readconvert.base64-encode/resourceflag.php Base64 在线编码解码 | Base64 加密解密 - Base64.us 结束...
德国人工智能公司【Kodex AI】完成160万欧元融资
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于德国柏林的人工智能公司【Kodex AI】今日宣布已完成160万欧元融资。 本轮融资由Signals VC领投,Techstars、德意志银行等天使投资者参与,其中包括:most AI首席执行官…...
LeetCode 2 两数相加
题目描述 链接:https://leetcode.cn/problems/add-two-numbers/?envTypefeatured-list&envId2ckc81c?envTypefeatured-list&envId2ckc81c 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式…...
springboot项目启动失败,不打印报错详细信息(启动打印日记问题)
1:出现这种我问题一般都是日记的问题,查看控制台启动打印的第一句,为什么启动失败,需要用那个日记 2:如果使用的是log4j或者logback与slf4j都是默认在依赖web自带的如下 <dependency><groupId>org.springf…...
MyBatis (where、set、foreach)标签
where标签 在上一节SQL 语句中加入了一个条件“11”,如果没有加入这个条件,那么可能就会变成下面这样一条错误的语句。 SELECT id,name,url,age,country FROM website AND name LIKE CONCAT(%,#{name},%)显然以上语句会出现 SQL 语法异常,但…...
flutter开发之安装dart
1、在MacOS系统中打开终端,进入到官网Get the Dart SDK | Dart brew tap dart-lang/dartbrew install dart 注意:若显示没有brew,请先执行第二步骤,如下: 2、打开homebrew的官网Homebrew — The Missing Package Man…...
向量召回:深入评估离线体系,探索优质召回方法
向量召回:深入评估离线体系,探索优质召回方法 1.简介 近年来,基于向量进行召回的做法在搜索和推荐领域都得到了比较广泛的应用,并且在学术界发表的论文中,基于向量的 dense retrieve 的方法也在不少数据集上都战胜了 sparse retrieve,吸引了越来越多的关注。在内网的不…...
播放器缓存队列bug解决方案
背景 我在开发一个播放器的缓存队列时,遇到一个bug,导致包和帧无法被下一个模块读取 找了半天,原来是队列中的包和帧数据要进行内容的刷新暂存 包数据和帧数据不能直接放入队列 //入队,包进队列 int AVPacketQueue::Push(AVPacket *val,i…...
React拖拽实践
当涉及到前端开发中的用户体验时,拖拽功能是一个常见而重要的需求。在React中,实现拖拽功能可以通过多种方式完成,但通常需要深刻理解React的状态管理、事件处理和DOM操作。本文将探讨React中拖拽的实践,包括基本原理、拖拽库的使…...
Stable Diffusion绘图,lora选择
best quality, ultra high res, (photorealistic:1.4), 1girl, off-shoulder white shirt, black tight skirt, black choker, (faded ash gray hair:1), looking at viewer, closeup <lora:koreandolllikeness_v20:0.66> 最佳品质,超高分辨率,&am…...
kube-controller-manager和kube-scheduler不能正常启动
kube-controller-manager-k8s-worker01和kube-scheduler-k8s-worker01没有启动起来 原因: 解决:进入/etc/kubernetes/manifests 编辑 将镜像地址修改为 然后重启kubelet:systemctl restart kubelet.service...
Mac OS m1 下安装Gradle5.1
1. 下载、解压 1.1 下载地址 https://gradle.org 往下翻 选择 5.1 或者选择 任何 你想要的版本 ,点击 binary-only 即可下载 . 1.2 解压到指定目录 2. 配置环境变量 2.1 编辑环境文件 vi ~/.bash_profile #GRADLE相关配置 GRADLE_HOME/Users/zxj/Documents/devSoft/grad…...
JUC并发编程面试题(自用)
线程池 1 线程池的作用:提高线程的利用率,线程复用,频繁的创建和销毁线程非常浪费资源 线程池的七大参数: corePoolSize(核心线程数):线程池中始终保持的活动线程数,即使它们处于空…...
Redis分布式会话
当探讨Redis分布式会话管理时,以下是更加详细的知识点: 1. 会话管理的挑战: 在分布式应用程序中,每个用户请求可能由不同的服务器处理。这导致了会话数据的分散性,需要一种方法来维护一致性的用户会话状态。 2. Redi…...
程序员大厂之鹅厂探秘
...
【Java 进阶篇】深入理解 JavaScript DOM Node 对象
在前端开发中,与HTML文档进行交互是一项基本任务。文档对象模型(Document Object Model,简称DOM)为开发者提供了一种以编程方式访问和操作HTML文档的方式。DOM的核心是节点(Node)对象,它代表了文…...
测试用例基础
测试用例的基本要素 测试环境, 操作步骤, 测试数据, 预期结果 测试用例的设计方法 基于需求的设计方法 需求文档 -> 梳理需求(掌握需求) -> 针对文档设计测试用例 只是针对需求进行大概的测试 具体的设计方法 等价类 等价类: 依据需求将输入(特殊情况…...
“Flex弹性布局、轮播图mock遍历数据和首页布局解析与实践“
目录 引言1. Flex弹性布局介绍及使用什么是Flex弹性布局?Flex容器与Flex项目Flex属性详解 2. 轮播图mock遍历数据简述轮播图的作用和意义处理mock数据的重要性使用Mock模拟数据遍历 3. 首页布局总结 引言 在现代网页开发中,灵活性和响应式布局是至关重要…...
从HTTP/3看TCP的困境:QUIC协议如何用UDP实现可靠传输?对比Wireshark抓包实例
HTTP/3时代TCP的困境与QUIC协议的革新之路 当你在手机上观看YouTube视频时,是否注意到缓冲速度比几年前快了许多?这背后隐藏着一场互联网传输协议的静默革命。传统TCP协议在移动互联网时代暴露出诸多局限性,而基于UDP的QUIC协议正在悄然改变游…...
3步掌握OCAT:OpenCore配置效率提升300%的GUI管理方案
3步掌握OCAT:OpenCore配置效率提升300%的GUI管理方案 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools OCAuxiliaryTools&…...
Dress Code:突破性高分辨率虚拟试衣数据集的技术架构与实战应用
Dress Code:突破性高分辨率虚拟试衣数据集的技术架构与实战应用 【免费下载链接】dress-code 项目地址: https://gitcode.com/gh_mirrors/dre/dress-code Dress Code是由意大利摩德纳大学研究团队开发的高分辨率多类别虚拟试衣数据集,为计算机视…...
3大维度解锁YimMenu:GTA5安全增强工具全方位使用指南
3大维度解锁YimMenu:GTA5安全增强工具全方位使用指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMe…...
TouchGal终极指南:3步打造你的专属Galgame社区家园
TouchGal终极指南:3步打造你的专属Galgame社区家园 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专为Ga…...
革新Unity网格变形:Deform插件的实时模型动画解决方案
革新Unity网格变形:Deform插件的实时模型动画解决方案 【免费下载链接】Deform A fully-featured deformer system for Unity that lets you stack effects to animate models in real-time 项目地址: https://gitcode.com/gh_mirrors/de/Deform 在3D内容创作…...
seo推广团队如何进行信息流推广
SEO推广团队如何进行信息流推广 在当今数字化时代,信息流推广已成为各大品牌和企业提升知名度、吸引客户的重要手段。信息流推广通过社交媒体、新闻门户网站和其他内容平台,将高质量的信息推送给目标用户,达到品牌曝光和销售转化的目的。SEO…...
Titanium SDK快速入门:10分钟创建你的第一个跨平台App
Titanium SDK快速入门:10分钟创建你的第一个跨平台App 【免费下载链接】titanium-sdk 🚀 Native iOS and Android Apps with JavaScript 项目地址: https://gitcode.com/gh_mirrors/ti/titanium-sdk Titanium SDK是一个强大的开源框架,…...
Qwen3.5-2B轻量化多模态模型Python入门实战:零基础快速上手AI开发
Qwen3.5-2B轻量化多模态模型Python入门实战:零基础快速上手AI开发 1. 开篇:为什么选择Qwen3.5-2B入门AI开发 如果你刚接触AI开发,可能会被各种复杂的模型和术语吓到。Qwen3.5-2B是个不错的起点——它足够轻量,能在普通GPU上运行…...
Windows热键冲突终极排查指南:3分钟快速定位问题应用
Windows热键冲突终极排查指南:3分钟快速定位问题应用 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经…...
