使用docker-compose去部署项目有如下步骤
1.打包好的jar包,dist文件
2.每个jar包,dist文件对应的dockerFile文件
3.docker-compose.yml文件
4.使用docker-compose up命令构建并启动容器
下面是详细说明
1.
①jar包的dockerFile文件,每个命令详细解释在上篇文章中
②dist文件的dockerFile文件,每个命令详细解释,以及nginx.conf怎么修改在上上篇文章中
2.docker-compose.yml文件,注意yml文件不能使用tab而只能用空格
version: '3'services:registery-center:build:context: .dockerfile: registerrestart: alwayshostname: registry-centerports: - 9000:9000deploy:resources:limits:memory: 1024Mupms-service:build:context: .dockerfile: upmsrestart: alwaysdepends_on:- registery-centerports:- 9003:9003deploy:resources:limits:memory: 1024Mauth-service:build: context: .dockerfile: authrestart: alwaysdepends_on:- upms-serviceports:- 9002:9002deploy:resources:limits:memory: 1024Mmaterials-service:build:context: . dockerfile: materialsrestart: alwaysdepends_on:- auth-serviceports: - 9009:9009deploy:resources:limits:memory: 1024Mhardware-service:build:context: . dockerfile: hardwarerestart: alwaysdepends_on:- materials-serviceports: - 9008:9008deploy:resources:limits:memory: 1024Mapi-gateway:build: context: .dockerfile: apigatewayrestart: alwaysdepends_on:- materials-serviceports: - 9010:9010deploy:resources:limits:memory: 500Mweb:build: context: .dockerfile: nginxrestart: alwaysports:- 8000:8000deploy:resources:limits:memory: 500M
下面详细解释
services下面是所有的服务也就是要构建的容器registery-center、upms-service这些都是自定义的服务名称,和jar包对应即可(当然前端就命名为web即可)build构建命令,下面的context:是指要用的dockerfile在哪个目录下,我这里就在本级目录下,有了目录之后,dockerfile:后面跟的是要用的dockerfile名称restart:always,服务挂掉一直重启hostname: 这里的话注册中心一定要配置这个,因为项目中是根据域名去找ip地址的,而且这个hostname一定要和项目中注册中心的一样ports,暴露端口出来,供外界访问deploy:resources:limits:memory:xxxxM,为的是限制各个容器的内存占用上限(在加了这个之后,启动时需要加上 --compatibility这个参数,即
docker-compose --compatibility up)
当然在启动docker-compose --compatibility up命令之前,要把数据库服务启动起来
docker run -p 3306:3306 --name myMysql -v /usr/local/work/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.26 --lower_case_table_names=1
最后–lower_case_table_names=1是为了让MySQL不再区分大小写,这里需要注意的是表的名需全部为小写这个命令参数才能生效。(目前还有一些查询语句group by 有问题,不知道是sql语句有问题还是什么原因,在查)
接下来docker-compose up 就可以构建并启动项目了