docker-compose部署若依springCloud


title: docker-compose部署若依springCloud
author: 红豆刨冰

若依官方文档–> https://doc.ruoyi.vip/ruoyi-cloud/document/hjbs.html#%E9%83%A8%E7%BD%B2%E7%B3%BB%E7%BB%9F

1.相关jar包准备

mvn clean

mvn package

打最新的jar包到target目录下

若依后台打包

image-20240827114809409

将本地开发测试数据库的数据导出成sql脚本,放入sql这个文件夹

image-20240827114106220

编写docker下copy.sh文件

image-20240827114343122

执行脚本,相应文件已经拷贝到docker目录下

image-20240827114401681

2.修改相关配置文件

2.1 mysql

# 基础镜像
FROM mysql:5.7
# author
MAINTAINER ruoyi

# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/

在使用 mysql:5.7 作为基础镜像时,MySQL 官方镜像提供了一个特性,即在容器启动时会自动执行 /docker-entrypoint-initdb.d/ 目录下的所有 .sql 文件。也就是说,当启动基于这个镜像的容器时,MySQL 会自动运行这些 SQL 脚本来初始化数据库。

2.2 nacos

# 基础镜像
FROM nacos/nacos-server
# author
MAINTAINER ruoyi

# 复制conf文件到路径
COPY ./conf/application.properties /home/nacos/conf/application.properties

2.3 nginx

nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /home/ruoyi/projects/ruoyi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        location /prod-api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://ruoyi-gateway:8080/;
        }

        # 避免actuator暴露
        if ($request_uri ~ "/actuator") {
            return 403;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

将所有发往 /prod-api/ 的请求代理转发到 ruoyi-gateway 服务器,同时保留和传递原始请求的相关头信息

2.4 redis

# 基础镜像
FROM redis
# author
MAINTAINER ruoyi

# 挂载目录
VOLUME /home/ruoyi/redis
# 创建目录
RUN mkdir -p /home/ruoyi/redis
# 指定路径
WORKDIR /home/ruoyi/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf

2.5 ruoyi

# 基础镜像
FROM docker.m.daocloud.io/library/eclipse-temurin:17-jre
# author
MAINTAINER ruoyi

# 定义 JAR 包文件名
ENV JAR_FILE=ruoyi-modules-midjourney-proxy-3.6.3.jar

# 挂载目录
VOLUME /home/ruoyi
# 创建目录
RUN mkdir -p /home/ruoyi
# 指定路径
WORKDIR /home/ruoyi
# 复制 jar 文件到路径
COPY ./jar/${JAR_FILE} /home/ruoyi/${JAR_FILE}
# 启动系统服务
ENTRYPOINT ["java","-jar","${JAR_FILE}"]

ruoyi文件下的其他dockerfile书写类似

2.6 docker-compose.yml

version : '3.8'
services:
  ruoyi-nacos:
    container_name: ruoyi-nacos
    image: nacos/nacos-server
    build:
      context: ./nacos
    environment:
      - MODE=standalone
    volumes:
      - ./nacos/logs/:/home/nacos/logs
      - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8850:8848"
    depends_on:
      - ruoyi-mysql
  ruoyi-mysql:
    container_name: ruoyi-mysql
    image: mysql:5.7
    build:
      context: ./mysql
    ports:
      - "3307:3306"
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql
    command: [
          'mysqld',
          '--innodb-buffer-pool-size=80M',
          '--character-set-server=utf8mb4',
          '--collation-server=utf8mb4_unicode_ci',
          '--default-time-zone=+8:00',
          '--lower-case-table-names=1'
        ]
    environment:
      MYSQL_DATABASE: 'ry-cloud'
      MYSQL_ROOT_PASSWORD: password
  ruoyi-redis:
    container_name: ruoyi-redis
    image: redis
    build:
      context: ./redis
    ports:
      - "6380:6379"
    volumes:
      - ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
      - ./redis/data:/data
    command: redis-server /home/ruoyi/redis/redis.conf
  ruoyi-nginx:
    container_name: ruoyi-nginx
    image: nginx
    build:
      context: ./nginx
    ports:
      - "81:80"
    volumes:
      - ./nginx/html/dist:/home/ruoyi/projects/ruoyi-ui
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/logs:/var/log/nginx
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - ruoyi-gateway
    links:
      - ruoyi-gateway
  ruoyi-gateway:
    container_name: ruoyi-gateway
    build:
      context: ./ruoyi/gateway
      dockerfile: dockerfile
    ports:
      - "8081:8080"
    depends_on:
      - ruoyi-redis
    links:
      - ruoyi-redis
  ruoyi-auth:
    container_name: ruoyi-auth
    build:
      context: ./ruoyi/auth
      dockerfile: dockerfile
    ports:
      - "9210:9200"
    depends_on:
      - ruoyi-redis
    links:
      - ruoyi-redis
  ruoyi-modules-system:
    container_name: ruoyi-modules-system
    build:
      context: ./ruoyi/modules/system
      dockerfile: dockerfile
    ports:
      - "9201:9201"
    depends_on:
      - ruoyi-redis
      - ruoyi-mysql
    links:
      - ruoyi-redis
      - ruoyi-mysql
  ruoyi-modules-midjourney-proxy:
    container_name: ruoyi-modules-midjourney-proxy
    build:
      context: ./ruoyi/modules/midjourney
      dockerfile: dockerfile
    ports:
      - "10086:10086"
    depends_on:
      - ruoyi-redis
      - ruoyi-mysql
    links:
      - ruoyi-redis
      - ruoyi-mysql

配置容器名称,构建方法,端口,依赖管理

3.运行部署

在开始之前,请确保你的系统上已经安装了 Docker 和 Docker Compose。如果还没有安装,可以根据你的操作系统类型进行安装。

​ • Docker 安装:Docker 官方安装指南

​ • Docker Compose 安装:Docker Compose 安装指南

使用 cd 命令导航到包含 docker-compose.yml 文件的目录

运行以下命令启动 docker-compose.yml 文件中定义的所有服务:

docker-compose up

如果你希望在后台运行这些服务(即以“守护进程”模式运行),可以使用 -d 选项

docker-compose up -d

直接将整个docker文件夹上传,然后运行

image-20240827132552431

有时候nacos的构建会报错,因为mysql没有初始化完成,nacos就开始读ry-config表

最后再测试即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值