背景
-
这个case只能是一个入门级别的case,后边给大家带来企业实战级别
首先试试中间件
docker-compose 文件部署数据库,启动以后数据库可以远程连接,并且也初始化了数据库ems
version: "3.0"
networks:
ems:
volumes:
data: # 默认/var/lib/docker/volumes/
services:
mysql:
image: mysql:5.7
ports:
- "3306:3306" #只写一个端口随机使用宿主机一个端口进行容器端口映射
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=ems"
volumes:
- data:/var/lib/mysql
- ./ems.sql:/docker-entrypoint-initdb.d/ems.sql
networks:
- ems
docker-compose 文件部署nacos
单独去启动nacos服务 docker-compose up -d nacos
version: "3.0"
networks:
ems:
volumes:
data: # 默认/var/lib/docker/volumes/
services:
nacos:
image: nacos/nacos-server:1.3.1
ports:
- "8848:8848"
environment:
- "MODE=standalone"
networks:
- ems
mysql:
image: mysql:5.7
ports:
- "3306:3306" #只写一个端口随机使用宿主机一个端口进行容器端口映射
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=ems"
volumes:
- data:/var/lib/mysql
- ./ems.sql:/docker-entrypoint-initdb.d/ems.sql
networks:
- ems
编写各个服务的dockerfile
FROM openjdk:8-jre
ENV APP_HOME=/apps
WORKDIR $APP_HOME
COPY ./ems-departments-1.0.jar ./dept.jar
EXPOSE 8082
ENTRYPOINT ["java","-jar"]
CMD ["dept.jar"]
FROM openjdk:8-jre
ENV APP_HOME=/apps
WORKDIR $APP_HOME
COPY ./ems-employees-1.0.jar ./emp.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar"]
CMD ["emp.jar"]
FROM openjdk:8-jre
ENV APP_HOME=/apps
WORKDIR $APP_HOME
COPY ./ems-gateway-1.0.jar ./gateway.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar"]
CMD ["gateway.jar"]
最终的docker-compose
version: "3.0"
networks:
ems:
volumes:
data: # 默认/var/lib/docker/volumes/
services:
employee:
build:
context: ./employee
dockerfile: Dockerfile
ports:
- "8081:8081"
networks:
- ems
department:
build:
context: ./department
dockerfile: Dockerfile
ports:
- "8082:8082"
networks:
- ems
gateway:
build:
context: ./gateway
dockerfile: Dockerfile
ports:
- "8888:8888"
networks:
- ems
nacos:
image: nacos/nacos-server:1.3.1
ports:
- "8848:8848"
environment:
- "MODE=standalone"
networks:
- ems
mysql:
image: mysql:5.7
ports:
- "3306:3306" #只写一个端口随机使用宿主机一个端口进行容器端口映射
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=ems"
volumes:
- data:/var/lib/mysql
- ./ems.sql:/docker-entrypoint-initdb.d/ems.sql
networks:
- ems
微服务如何整合nacos,以DEPARMENTS为例
bootstrap.properties的配置
spring.cloud.nacos.server-addr=8.136.60.157:8848
spring.cloud.nacos.config.namespace=a88bd706-3505-40a1-b3ee-cfc44efa57ef
spring.cloud.nacos.config.group=DEPARMENTS
spring.cloud.nacos.config.name=department-dev
spring.cloud.nacos.config.file-extension=properties
nacos上面的样子
部署到linux上面的样子
分别通过网关和微服务进行访问都是ok的
http://8.136.60.157:8082/departments
http://8.136.60.157:8081/employees
http://8.136.60.157:8888/ems/employees