Docker + Nginx 部署springCloud

5 篇文章 0 订阅
2 篇文章 0 订阅

一、Docker 安装

Windows Docker 安装 | 菜鸟教程Windows Docker 安装 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。 在 Windows 上部署 Docker 的方法都是..https://www.runoob.com/docker/windows-docker-install.html二、Docker配置

  1、子模块Dockerfile 

// 选取打包后的jar
FROM openjdk:8-jre              // jdk版本
ARG JAR_FILE=target/*.jar       
COPY ${JAR_FILE} app.jar
WORKDIR /
ENTRYPOINT ["java","-jar","/app.jar"]

  2、父模块配置

version: "3.7"
services:
  redis:
    image: redis:latest                // 从DockerHub获取image
    container_name: bridge-redis       // Docker中容器名称
    networks:                          // 容器中可以互通的networks
      - backend
    environment:                       // 环境变量
      - TZ=Asia/Shanghai

  kurento-server:
    image: kurento/kurento-media-server:latest
    container_name: bridge-kurento-server
    networks:
      - backend
    ports:
      - "38888:8888"                    // 默认TCP,前者为对外映射的端口,后者为docker内占用端口
      - "25000-25050:5000-5050/udp"     // UDP,占用50个端口
    environment:
      - TZ=Asia/Shanghai
      - KMS_MIN_PORT=5000
      - KMS_MAX_PORT=5050

  files:                   
    build: ./files                       // 从本地获取image
    image: bridge/files:latest           
    container_name: bridge-files         
    volumes:
      - D:\logs\bridge_files:/logs       // 参数,在linux部署需要更改为Linux地址
      - D:\testFiles:/uploadFiles
    networks:
      - backend  
#    ports:                              // 不对外映射端口,根据模块配置占用端口
#      - "3086:8086"
    environment:
      - TZ=Asia/Shanghai

  nginx:
    image: nginx
    container_name: bridge-nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf    // nginx配置文件
      - ./frontend:/home/www/bridge-frontend  // 前端映射模块,参考nginx配置文件
    ports:                                    // 必须对外映射
      - 38080:8080
    restart: unless-stopped
    networks:
      - backend
networks:
  backend:
    name: bridgeMonitor

3、Nginx配置

worker_processes 1;

events { worker_connections 1024; }

http {
    include    /etc/nginx/mime.types;
    sendfile   on;

    proxy_buffer_size   128k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;

    client_max_body_size   100m;

    server {
        listen 8080;                         // 监听端口

        location / {
            root /home/www/bridge-frontend;  // path为 / 时,转到bridge-frontend前端
        }
        location /files/ {                   // path为 /files/ 时
            resolver 127.0.0.11 ipv6=off;
            set $upstream bridge-files:8086; // 转到 bridge-files 模块
            proxy_pass         http://$upstream;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
        location /user/ {                    // path为 /user/ 时
            resolver 127.0.0.11 ipv6=off; 
            set $upstream bridge-user:8085;  // 转到 bridge-user 模块
            proxy_pass         http://$upstream;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
       }
    }
    
    server{                                  // 第二个监听端口
        listen 8443            
    }
}

三、部署

1、后端根目录下打开cmd运行

mvn clean package -P docker -DskipTests

2、前端目录下cmd运行

// name 为build后的image 名,需要与配置文件中一致
docker build -t name .  

3、将前端build后的dist文件下的所有文件移动到后端目录下的前端文件夹根目录下

4、后端根目录下打开cmd运行

// 自动创建并将多个image关联起来,并启动
docker compose up 
// -d 后台运行
docker compose up -d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值