docker-compose用法3.0
最后更新于:2022-04-02 07:10:40
# 微服务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服务地址 **(非常重要)**
```
jeecg-boot-nacos:8848
```
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/68/77/687713cd5f5a5252072e0e139b7f0f49_576x242.png)
- 3.项目打包 `install`
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/f0/d5/f0d54163080f38ea34ae9b9b61bed997_239x234.png)
看到执行成功
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/ec/76/ec76cc05c713a6e9206fc7753e8d403c_341x129.png)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/a1/6e/a16eff653e7928a35b0f3b00939aff27_528x382.png)
- 6.按顺序手工重启镜像
由于暂时还未做容器编排,mysql的初始化慢会导致 nacos、system、gateway启动失败或报错,所以需要手工重启下镜像,请按照下面的步骤操作。
[1]. 先确认mysql容器的数据库初始化完成,查看mysql容器日志或者等待1分钟
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/95/df/95df0181af1ac330abbbb8f7548a9ee4_188x169.png)
[2]. mysql完成后,先重启nacos
访问: http://localhost:8848/nacos
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/87/31/87315a5dd0d3ef15e711dc7667330492_1301x534.png)
[3].再重启system(会自动重启)
[4].最后重启gateway
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/5a/23/5a2357cd06254ae0f6dad0f65a59d040_992x462.png)
- 7.验证后台服务,访问swagger文档
http://localhost:9999/doc.html
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/dd/63/dd63b483f8e9d6782f58c8f1e51c264b_1423x911.png)
常见问题
1.swagger文档实例访问不到
解决: 等system启动成功后,重启gateway。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/35/37/3537f3329178c6268cc89145d895356b_1851x915.png)
2.mysql、redis容器创建失败
解决:如果是本地的话,确认下是否有已启动的mysql、redis,端口冲突了,关闭本地服务
3.如果一开始配置错误,执行过命令,需要手工删除下生成过的镜像(不然始终用的是老的镜像文件)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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
';