0
点赞
收藏
分享

微信扫一扫

六、spring-cloud部署

尤克乔乔 2021-09-21 阅读 84

概述

一. 前期准备工作

1.1 服务器配置docker-compose环境

1.1.1 安装 Docker Compose

Compose 支持 Linux、macOS、Windows 10 三大平台。在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。

curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
1.1.2 验证安装是否成功
docker-compose version

# 输出如下
docker-compose version 1.24.0, build 0aa59064
docker-py version: 3.7.2
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

1.2 拉取镜像: store/oracle/serverjre:8

1.2.1 先到docker搜索jre

1.2.2 注册

1.2.3 填写基础信息注册

1.2.4 拉取镜像
docker pull store/oracle/serverjre:8

二. 编写Docker相关文件

2.1 确定工程依赖关系及开放端口

1.2.1 工程结构

1.2.2 工程间依赖关系
工程名 依赖 开放端口 备注
springcloud-ms-eureka-7961 不依赖服务 7961:7961
springcloud-ms-configserver-7070 不依赖服务 7070 需要拷贝 wait-for-it.sh
springcloud-ms-consumer-8080 依赖 eureka 8080
springcloud-ms-provider-6001 依赖 eureak, mysql 6001 初始化连接池,所以要等mysql彻底启动才能正常启动;provider的配置文件在gitee,需要连接到配置服务器,所以必须要等配置服务器启动。但是 ./wait-for-it.sh server-config:7070 mysq:3306 不能等两个服务,所以我们配置服务器等mysql启动,然后provider等配置服务器。
springcloud-ms-provider-6002 依赖 eureak, mysql 6002 初始化连接池,所以要等mysql彻底启动才能正常启动;provider的配置文件在gitee,需要连接到配置服务器,所以必须要等配置服务器启动。
springcloud-ms-zuul-9090 无依赖eureka 9090:9090

2.2 在子工程更目录下编写Dockerfile

2.2.1 示例

FROM store/oracle/serverjre:8
MAINTAINER hello@163.com
RUN mkdir -p /datas
WORKDIR /datas
COPY springcloud-ms-provider-6001-1.0-SNAPSHOT.jar ./
# 将脚本拷贝进去,等依赖的服务启动后才启动
COPY wait-for-it.sh ./
EXPOSE 6001

2.3在父工程下编写docker-compose.yml

version: '3.7'
services:
  mysql:
    image: mysql:5.7.27
    ports:
      - 3307:3306
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      # mysql的数据文件的位置
      - /springcloud-ms/mysql/datas/:/var/lib/mysql
      # mysql的配置文件
      - /springcloud-ms/mysql/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
  eureka1:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-eureka-7961
      dockerfile: Dockerfile
    ports:
      - 7961:7961
    command: ["java", "-jar", "springcloud-ms-eureka-7961-1.0-SNAPSHOT.jar"]
#  eureka2:
#    build:
#      # Dokcerfile文件所在的位置
#      context: springcloud-ms-eureka-7962
#      dockerfile: Dockerfile
#    ports:
#      - 7962:7962
#    command: ["java", "-jar", "springcloud-ms-eureka-7962-1.0-SNAPSHOT.jar"]
  ms-provider1:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-provider-6001
      dockerfile: Dockerfile
    depends_on:
      - mysql
      - eureka1
      - config-server
    # 等mysql服务启动,最长等6000s, 然后再启动 jar
    command: ["./wait-for-it.sh", "-t", "6000", "config-server:7070", "--", "java", "-jar", "springcloud-ms-provider-6001-1.0-SNAPSHOT.jar"]
  ms-provider2:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-provider-6002
      dockerfile: Dockerfile
    deploy:
      # 表示构建两个集群集群
      replicas: 2
    depends_on:
      - mysql
      - eureka1
      - config-server
    # 等mysql服务启动,最长等6000s, 然后再启动 jar
    command: ["./wait-for-it.sh", "-t", "6000", "config-server:7070", "--", "java", "-jar", "springcloud-ms-provider-6002-1.0-SNAPSHOT.jar"]

  config-server:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-configserver-7070
      dockerfile: Dockerfile
    command: ["./wait-for-it.sh", "-t", "6000", "mysql:3306", "--", "java", "-jar", "springcloud-ms-configserver-7070-1.0-SNAPSHOT.jar"]
  zuul:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-zuul-9090
      dockerfile: Dockerfile
    depends_on:
      - eureka1
    ports:
      - 9090:9090
    command: ["java", "-jar", "springcloud-ms-zuul-9090-1.0-SNAPSHOT.jar"]
  consumer:
    build:
      # Dokcerfile文件所在的位置
      context: springcloud-ms-consumer-8080
      dockerfile: Dockerfile
    command: ["java", "-jar", "springcloud-ms-consumer-8080-1.0-SNAPSHOT.jar"]
    depends_on:
      - eureka1

三 . 部署就绪

3.1 打包各子工程

3.1.1 打包方法

3.1.2 依赖了公共模块的工程打jar包

注意 : 如果不先打包commons,可能会出现找不到依赖问题

步骤一: 先打spring-commons包

步骤二 : 再去打其他包

四 . 整理工程打包上存服务器

4.1工程文件结构

文件内容

五 . 打开终端执行运行命令

5.1 运行工程

docker-compose up

5.2 可能出现.sh文件没有权限

解决方法: 直接给工程下所有文件赋权

# 进入工程目录
cd /springcloud-ms
# 给当前文件夹下所有文件授权
chmod -R 777 ./

百度云连接

举报

相关推荐

0 条评论