注意:
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