docker部署springcloud+vue项目

一 新建docker项目部署目录

如下图所示:
在这里插入图片描述
其中gateway代表网关模块,mysql代表mysql数据库,nginx代表代理服务器,service代表服务api,redis代表缓存服务器
docker-compose.yml为最终部署文件

二配置项目运行环境

  1. 数据库
    主要包含四个文件,conf(数据软件相关配置),data(数据存储目录),init(数据库数据初始化),dokcer-compose,代表单独运行docker环境
    如下图所示:
    在这里插入图片描述
  2. redis
    主要包含四个文件,conf(redis相关配置),data(数据存储目录),log(redis的日志),dokcer-compose,代表单独运行docker环境
    如下图所示:
    在这里插入图片描述
  3. nacos(注册中心)
    主要包含四个文件,data(数据存储目录),log(redis的日志),dokcer-compose,代表单独运行docker环境,nacos.env代表环境配置参数
    在这里插入图片描述
  4. nginx(代理服务)
    html前端打包目录,logs(nginx运行日志文件)
    在这里插入图片描述

三docker 打包镜像

1.service (微服务模块)service.env
主要三个文件,Dockerfile(docker打包文件),service.env(微服务配置参数),sevice-0.0.1-SNAPSHOT.jar(微服务jar包)
如下图所示
在这里插入图片描述
打包命令

docker build -t clouddemo-service

2.gateway(网关服务)
主要三个文件,Dockerfile(docker打包文件),gateway.env(微服务配置参数),gateway-0.0.1-SNAPSHOT.jar(微服务jar包)
如下图所示
在这里插入图片描述
打包命令

docker build -t clouddemo-gateway .

四 整合容器

总配置文件如下:

version: '3'

services:
  nginx: #服务名称,用户自定义
    image: nginx:latest #镜像版本
    container_name: nginx
    ports:
      - 80:80 #暴露端口
    restart: always
    volumes: #挂载
      - ./nginx/html:/usr/share/nginx/html
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/logs:/var/log/nginx
    privileged: true #解决nginx的文件调用权限问题
    networks:
      my-overlay-network:
        aliases:
          - nginx-service
  service:
    image: clouddemo-service
    build: # 表示以当前目录下的Dockerfile开始构建镜像
      context: .   #代表上下文当前目录
      dockerfile: service/Dockerfile #DockerFile的文件名字
    restart: always
    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
    ports:
      - "9001:9001"
    networks:
      my-overlay-network:
        aliases:
          - service-user
    env_file:
      - service/service.env
    volumes: #挂载
      - ./service/logs:/log/service
    depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以
      - mysql
      - redis
      - nacos
  mysql:
    image: mysql
    container_name: db_mysql
    ports:
      - 3306:3306
    restart: always
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./mysql/data:/var/lib/mysql
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --default-authentication-plugin=mysql_native_password
    networks:
      my-overlay-network:
        aliases:
          - mysql-service
    environment: # 指定用户root的密码
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_DATABASE: 'ajgl'
  nacos:
    image: nacos/nacos-server:v2.0.3
    container_name: nacos
    env_file:
      - nacos/nacos.env
    volumes:
      - ./nacos/logs:/home/nacos/logs
      - ./nacos/data:/home/nacos/data
    ports:
      - 8848:8848
    networks:
      my-overlay-network:
        aliases:
          - nacos-service
    restart: always
  gateway:
    image: clouddemo-gateway
    container_name: gateway
    build: # 表示以当前目录下的Dockerfile开始构建镜像
      context: .   #代表上下文当前目录
      dockerfile: gateway/Dockerfile #DockerFile的文件名字
    restart: always
    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
    ports:
      - "9000:9000"
    networks:
      my-overlay-network:
        aliases:
          - gateway-service
    env_file:
      - gateway/gateway.env
    volumes: #挂载
      - ./gateway/logs:/log/gateway
    depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以
      - mysql
      - redis
      - nacos
  redis:
    image: redis:5.0.3
    container_name: db_redis
    ports:
      - 6333:6379
    restart: always
    volumes: #挂载
      - ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - ./redis/data:/data:rw
      - ./redis/logs:/logs
    networks:
      my-overlay-network:
        aliases:
          - redis-service
    command: redis-server /usr/local/etc/redis/redis.conf
networks:
  my-overlay-network:
    external: true
    driver: overlay


五 运行

docker-compose up

运行效果

在这里插入图片描述

六 项目地址

gitee地址

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值