使用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