使用docker-compose构建springcloud项目
1、首先准备两个服务,一个后台服务,一个网关
1)ormis-admin
2)ormis-gateway

2、为两个服务准备各自的Dockerfile
1)ormis-admin
#基于java8
FROM java:8
#创建一个目录存放jar包
RUN mkdir -p /opt/ormis/ormis-admin/config /opt/ormis/ormis-admin/logs
#复制jar包以及相关配置文件
COPY ormis-admin-1.0-SNAPSHOT.jar /ormis-admin-1.0-SNAPSHOT.jar
#添加进入docker容器后的目录
WORKDIR /opt/ormis/ormis-admin
#配置项目端口
CMD ["--server.port=7001"]
#对外暴露的端口号
EXPOSE 7001
#修改文件的创建修改时间
RUN bash -c 'touch /ormis-admin-1.0-SNAPSHOT.jar'
#运行脚本,启动springboot项目
ENTRYPOINT ["java","-jar","/ormis-admin-1.0-SNAPSHOT.jar","-Dspring.config.location=/opt/ormis/ormis-admin/config/bootstrap.properties,/opt/ormis/ormis-admin/config/application.yml --logging.config=/opt/ormis/ormis-admin/config/log4j2-dev.xml > /opt/ormis/ormis-admin/logs/ormis-admin.log 2>&1 &"]
2)ormis-gateway
#基于java8
FROM java:8
#创建一个目录存放jar包
RUN mkdir -p /opt/ormis/ormis-gateway/config /opt/ormis/ormis-gateway/logs
#复制jar包以及相关配置文件
COPY ormis-gateway-1.0-SNAPSHOT.jar /ormis-gateway-1.0-SNAPSHOT.jar
#添加进入docker容器后的目录
WORKDIR /opt/ormis/ormis-gateway
#配置项目端口
CMD ["--server.port=8888"]
#对外暴露的端口号
EXPOSE 8888
#修改文件的创建修改时间
RUN bash -c 'touch /ormis-gateway-1.0-SNAPSHOT.jar'
#运行脚本,启动springboot项目
ENTRYPOINT ["java","-jar","/ormis-gateway-1.0-SNAPSHOT.jar","-Dspring.config.location=/opt/ormis/ormis-gateway/config/application.yml &"]
3、编写一个docker-compose.yml文件,用来构建我们要发布的两个服务
version: '3'
services:
ormis-admin: #定义服务名称
restart: always # 自启动
build:
context: ./ormis-admin # 指定Dockerfile所在的路径
dockerfile: Dockerfile # 指定Dockerfile文件名称
image: ormis-admin:v1.0 # 镜像名称:版本
container_name: ormis_admin_v1.0.3
ports:
- '7001:7001' # 容器端口与服务器端口的映射
environment:
TZ: Asia/Shanghai
volumes: #挂载数据卷,同步主机与容器的配置文件
- /opt/ormis/ormis-admin/config:/opt/ormis/ormis-admin/config
- /opt/ormis/ormis-admin/logs:/opt/ormis/ormis-admin/logs
networks:
- ormis-network
ormis-gateway: #定义网关服务
restart: always
build:
context: ./ormis-gateway
dockerfile: Dockerfile
image: ormis-gateway:v1.0
container_name: ormis_gateway_v1.0.3
ports:
- '8888:8888'
environment:
TZ: Asia/Shanghai
volumes:
- /opt/ormis/ormis-gateway/config:/opt/ormis/ormis-gateway/config
networks:
- ormis-network
depends_on:
- ormis-admin
links:
- ormis-admin
networks:
ormis-network:
driver: bridge
4、在Linux上面建立放置指定配置文件的目录,将两个服务的配置文件以及生成的jar都放进去
5、使用docker-compose构建并且启动项目
命令:docker-compose up --build -d
6、项目迭代发布新版本的时候,需要重新构建业务镜像,重新运行docker容器。
老方法:
docker pull 新镜像名
docker stop 容器名
docker rm 容器名
docker rmi 业务镜像名
docker run -d --name 容器名 -p 对外端口:内部端口 新镜像名
使用docker-compose方法:
配置好docker-compose.yml 文件,然后
docker-compose stop
docker-compose up -d --build