# 微服务Docker镜像制作 3.0 *环境:windows+idea+docker* >[info] version: jeecg 3.0.0 (含之前版本) docker脚本在:`jeecg-cloud-module/docker-compose.yml`,本文旨在如何通过该文件启动微服务项目 ## JeecgBoot 微服务后台 镜像制作 - 1.修改jeecg-boot-parent的pom文件配置nacos服务地址 **(非常重要)** ``` <discovery.server-addr>jeecg-boot-nacos:8848</discovery.server-addr> ``` ![](https://img.kancloud.cn/16/60/1660b870a001bed688c06954634f3ae5_882x702.png) >[warning] 注意:不改这个,会导致nacos连不上 - 2.修改jeecg-boot-module-system微服务打包配置(jeecg-boot-module-system/pom.xml) 此步骤很重要,不然会启动报错 No qualifying bean of type org.jeecg.common.api.CommonAPI ``` skip属性改为true ``` ![](https://img.kancloud.cn/68/77/687713cd5f5a5252072e0e139b7f0f49_576x242.png) - 3.项目打包 `install` ![](https://img.kancloud.cn/f0/d5/f0d54163080f38ea34ae9b9b61bed997_239x234.png) 看到执行成功 ![](https://img.kancloud.cn/2b/6f/2b6f7fa51ad2136956922c7e1f5d587e_582x148.png) - 4.修改本地hosts文件 ``` 127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-rabbitmq 127.0.0.1 jeecg-boot-xxljob ``` - 5.进入jeecg-cloud-module目录下,执行命令 `docker-compose up -d` ![](https://img.kancloud.cn/ec/76/ec76cc05c713a6e9206fc7753e8d403c_341x129.png) ![](https://img.kancloud.cn/a1/6e/a16eff653e7928a35b0f3b00939aff27_528x382.png) - 6.按顺序手工重启镜像 由于暂时还未做容器编排,mysql的初始化慢会导致 nacos、system、gateway启动失败或报错,所以需要手工重启下镜像,请按照下面的步骤操作。 [1]. 先确认mysql容器的数据库初始化完成,查看mysql容器日志或者等待1分钟 ![](https://img.kancloud.cn/95/df/95df0181af1ac330abbbb8f7548a9ee4_188x169.png) [2]. mysql完成后,先重启nacos 访问: http://localhost:8848/nacos ![](https://img.kancloud.cn/87/31/87315a5dd0d3ef15e711dc7667330492_1301x534.png) [3].再重启system(会自动重启) [4].最后重启gateway ![](https://img.kancloud.cn/5a/23/5a2357cd06254ae0f6dad0f65a59d040_992x462.png) - 7.验证后台服务,访问swagger文档 http://localhost:9999/doc.html ![](https://img.kancloud.cn/dd/63/dd63b483f8e9d6782f58c8f1e51c264b_1423x911.png) 常见问题 1.swagger文档实例访问不到 解决: 等system启动成功后,重启gateway。 ![](https://img.kancloud.cn/35/37/3537f3329178c6268cc89145d895356b_1851x915.png) 2.mysql、redis容器创建失败 解决:如果是本地的话,确认下是否有已启动的mysql、redis,端口冲突了,关闭本地服务 3.如果一开始配置错误,执行过命令,需要手工删除下生成过的镜像(不然始终用的是老的镜像文件) ![](https://img.kancloud.cn/60/22/602251d6626d444fd47fe9c598cea3cb_909x415.png) ***** ## 前端ant-design-vue-jeecg 镜像制作 代码路径:https://github.com/zhangdaiscott/jeecg-boot/tree/master/ant-design-vue-jeecg ### 1. 修改前端项目的后台域名 .env.production ~~~ NODE_ENV=production VUE_APP_API_BASE_URL=https://bootapi.jeecg.com VUE_APP_CAS_BASE_URL=http://localhost:8888/cas VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview ~~~ ### 2. 先进入打包前端项目 yarn run build ### 3. 构建镜像 docker build -t nginx:jeecgboot . ### 4. 启动镜像 docker run --name jeecg-boot-nginx -p 80:80 -d nginx:jeecgboot ### 5. 访问前台项目 http://localhost:80