本篇从已有虚拟机/服务器 安装好dokcer为基础开始讲解

1.部署mysql

创建conf data init三个文件夹 

conf目录存放在mysql配置文件

init目录存放着若依数据库sql文件(从navicat导出的并非若依框架自带sql)

创建一个属于本次若依部署的网段(只有在一个网段的容器才能通过容器名通信)

启动mysql命令  -v是挂载,宿主机文件挂载到容器中 

docker run -d --name mysql -p 3309:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 -v /usr/yxt/mysql/data:/var/lib/mysql -v /usr/yxt/mysql/init:/docker-entrypoint-initdb.d -v /usr/yxt/mysql/conf:/etc/mysql/conf.d --network ruoyinet mysql

通过navicat连接查看

mysql部署成功

2.部署Redis

docker run -d --name redis -p 6379:6379 --network ruoyinet redis

3.部署后端服务

修改 redis和mysql连接的ip地址换为容器名称

上传若依的jar包,并编写一个dockerfile文件

进入Dockerfile文件目录执行命令 打包成镜像

docker build -t ryadmin .

启动镜像为容器

docker run -d --name ryadmin -p 8090:8090 --network ruoyinet ryadmin

 网页测试访问接口或查看容器日志 后端服务启动成功

4.部署前端服务

上传打包好的若依前端

编写nginx.conf 文件


worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/json;

    sendfile        on;
    
    keepalive_timeout  65;
    server {
        listen       8091;
        # 指定前端项目所在的位置
        location / {
            root /usr/share/nginx/html/ruoyi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        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://ryadmin:8090/;
#            rewrite /api/(.*)  /$1 break;
#            proxy_pass http://ramin:8090;
        }
    }
    
}

启动docker中nginx镜像并将前端项目与配置文件进行挂载

docker run -d --name nginx -p 8091:8091 -v /usr/yxt/nginx:/usr/share/nginx/html -v /usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf --network ruoyinet nginx

访问前端页面 成功

5.使用dockerCompose部署

Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

先将前面的容器全部删除

编写一个docker-compose.yml文件

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3307:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "/usr/yxt/mysql/data:/var/lib/mysql"
      - "/usr/yxt/mysql/init:/docker-entrypoint-initdb.d"
      - "/usr/yxt/mysql/conf:/etc/mysql/conf.d"
    networks:
      - ruoyinet
      
  redis:
    image: redis
    container_name: redis
    ports:
      - "6379:6379"
    networks:
      - ruoyinet

  ryadmin:
    build: 
      context: /usr/yxt/radmin
      dockerfile: Dockerfile
    container_name: ryadmin
    ports:
      - "8090:8090"
    networks:
      - ruoyinet
    depends_on:
      - mysql
      - redis
      
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "8091:8091"
    volumes:
      - "/usr/yxt/nginx:/usr/share/nginx/html"
      - "/usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf"
    depends_on:
      - ryadmin
    networks:
      - ruoyinet
networks:
  ruoyinet:
    name: rynet

在docker-compose.yml文件目录下输入命令

docker compose up -d

Logo

快速构建 Web 应用程序

更多推荐