我们当前有gateway、order-service、user-service三个微服务,统一都使用mysql数据库
首先根据服务名新建三个目录gateway、order-service、user-service,以及新建docker-compose.yml文件,结构如下
image.png
在每个目录下放入相应打包好的微服务,以及Dockerfile文件
image.png
Dockerfile文件内容如下示例
FROM java:8-alpine
COPY ./gateway.jar /home/gateway.jar
EXPOSE 8080
ENTRPYPOINT java -jar /home/gateway.jar
编写docker-compose.yml文件
version: "3.2"
services:
nacos:
image: nacos/nacos-server
environment:
MODE: standalone
ports:
- "8848:8848"
mysql:
image: mysql:8.0.35
container_name: mysql3306
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: 'root'
MYSQL_PASS: 'root'
volumes:
- '/home/docker/mysql3306/log:/var/log/mysql'
- '/home/docker/mysql3306/data:/var/lib/mysql'
- '/home/docker/mysql3306/conf:/etc/mysql'
- '/etc/localtime:/etc/localtime'
gateway:
build:
context: ./gateway
dockerfile: Dockerfile
ports:
- "8080:8080"
userservice:
build:
context: ./user-service
dockerfile: Dockerfile
orderservice:
build:
context: ./order-service
dockerfile: Dockerfile
在docker-compose.yml文件下执行命令
# 启动
docker-compose up -d
# 重启某些服务命令
docker-compose restart gateway userservice orderservice
注意
通过DockerCompose集群部署的微服务中,微服务中的服务访问地址需改成docker服务名称,例子:
image.png