美文网首页自动化docker容器
细述mall-swarm通过docker搭建过程

细述mall-swarm通过docker搭建过程

作者: 佛系小懒 | 来源:发表于2020-02-29 08:49 被阅读0次

    阅读公众号作者macrozheng的文章:http://www.macrozheng.com/#/deploy/mall_swarm_deploy_docker

    结合自己本地搭建后台各模块的实际操作,进行记录与说明

    背景

    1、基于docker进行本地后端的搭建,docker未建私服,直接使用docker-hub;

    2、部分基础组件在虚已经拟机上面通过非docker镜像方式安装:具体涉及MySQL、Redis、Mongo、Elasticsearch

    3、下载源码:git clone https://github.com/macrozheng/mall-swarm

    镜像构建

    前置工作:修改配置

    主要涉及pom.xml及application.yml文件相关配置

    (1)修改docker监听IP及端口

    grep -rn docker.host ./

    sed -i 's/192.168.6.132:2375/127.0.0.1:2375/g' pom.xml

    换言之:Docker已经开启远程API的情况下,才能镜像上述操作

    (2)修改镜像名前缀为自己docker-hub下的账号:将imageName>mall替换为imageName>docker_hub_account/mall

    grep -rn imageName ./ -l | xargs sed -i 's/imageName>mall/imageName>docker_hub_account/mall/g'

    换言之:docker_hub_account字符串替换为您的docker-hub账号

    (3)将localhost改为静态IP(可选,由于本人虚拟机环境习惯用静态IP)

    grep -rn localhost ./ -l | xargs sed -i 's/localhost/static_ip/g'

    换言之:static_ip替换为你的静态IP地址

    (4)账号、库表的创建、授权等

    针对mysql:执行mall.sql创建库表并插入少量数据(注意设置账号及权限)

    针对rabbitmq:需要提前创建账号mall、密码mall,virtual-host:/mall,也可变更为其他,但是需要同步修改mall-portal模块下application.yml下rabbitmq相关配置信息

    (5)针对es出现频繁gc的情况,可能需要重新设置启动参数及gc策略,具体视机器运行状况去看,具体操作包含两种途径:

    途径1:附加elasticsearch.yml文件替换原来容器中的elasticsearch.yml文件

    途径2:修改document/docker/docker-compose-env.yml中elasticsearch的environment相关信息

    (6)由于使用插件:docker-maven-plugin进行镜像构建及上传docker-hub,需要在pom.xml里设置goals除了build还包含push

    构建镜像

    运行mvn clean package 打包镜像并push到docker-hub上面,具体覆盖 mall-admin、  mall-config、 mall-demo、mall-gateway 、mall-monitor 、mall-portal 、mall-registry mall-search这8个模块镜像,如果中间过程出现个别模块配置重新修改后构建镜像,直接运行:mvn install -pl mall-security -am -amd,会将依赖它的其他模块也一并重新构建了,mall-security替换成其他具体的模块名

    运行容器

    前置工作:修改脚本

    主要修改mall-swarm/document/sh目录下各docker-compose.yml中拉取的镜像名字及挂载路径

    针对mall-swarm相关组件的启动:

    (1) 将volume的挂载路径/mydata/app转变为自己的挂载路径:如/home/win/docker-app/mallswarm

    grep -rn /mydata/app ./ -l | xargs sed -i 's/\/mydata\/app/\/home\/win\/docker-app\/mallswarm/g'

    (2) 将镜像名字进行批量替换,即将mall/${app_name}替换为docker_hub_account/mall:${app_name}

     grep -rn mall/\${app_name}: ./ -l | xargs sed -i 's/mall\/\${app_name}:/docker_hub_account/mall:\${app_name}/g'

    (3) 在启动脚本中添加,--net=docker_default配置,避免无法访问基础组件的情况

    (4) 预先创建挂载路径的脚本,将相关目录及文件准备好, 具体参见:《mall-swarm之基础组件挂载路径批量创建》

    (5) 执行docker-compose -f docker-compose-env.yml -d,待服务mysql、redis、mongo、rabbitmq、elasticsearch、kibana正常启动,中间过程存在问题可参见《执行docker-compose-env.yml脚本》,默认使用了桥接方式创建网络docker_default

    (6) 按顺序启动相关脚本:

    ./mall-registry.sh  注册中心:默认端口8001

    ./mall-config.sh 配置中心:默认端口8301

    ./mall-monitor.sh 监控中心:默认端口8101

    ./mall-gateway.sh 网关服务:默认端口8201

    ./mall-admin.sh 后台管理:默认端口8180

    ./mall-search.sh 后台搜索服务:默认端口8081

    ./mall-portal.sh 网关服务:默认端口8085

    ./mall-demo.sh demo示例:默认端口8082

    后端的服务入口mall-admin拼接具体服务请求路径,

    如请求登录用户信息对应http://XX.XX.XX.XX:8201/mall-admin/admin/info

    相关文章

      网友评论

        本文标题:细述mall-swarm通过docker搭建过程

        本文链接:https://www.haomeiwen.com/subject/cuexhhtx.html