若依/RuoYi-Vue使用docker-compose部署

系统需求

  • JDK >= 1.8

  • MySQL >= 5.7

  • Maven >= 3.0

  • Node >= 12

  • Redis >= 3

思路

前端服务器 nginx

后端服务器+代码打包 java、maven、node

数据库/缓存 mysql、redis

开始

创建目录ruoyi并进入

克隆若依代码

git clone https://gitee.com/y_project/RuoYi-Vue.git

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

拉取node镜像

docker pull node:12.18.0

运行映射若依页面显示的目录到容器的opt目录下

cd RuoYi-Vue
docker run -it --rm -v ./ruoyi-ui/:/opt node:12.18.0 /bin/bash

进入容器后进入 /opt目录

前端代码构建

npm install

构建后打包 默认为dist

npm run build:prod

退出容器到本地查看

cd ./ruoyi-ui

ls

修改mysql的连接配置

vim /root/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml

修改redis连接配置

vim /root/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application.yml

拉取maven镜像

docker pull maven:3.8.8

本地移动到ruoyi目录下

运行映射若依后端目录到容器的vue目录下

docker run -it --rm -v ./RuoYi-Vue:/vue maven:3.8.8 /bin/bash

进入容器的/vue目录构建打包后端

mvn package

退出查看

cd /root/ruoyi/Ru yi-Vue/ruoyi-admin      

 后端打包好默认目录为target

在ruoyi目录下创建java目录

将打包好的后端代码目录中的 jar包拷贝到ruoyi目录下的Java目录下 并创建Dockerfile文件

编辑Dockerfile文件

#父镜像

FROM centos:7

#下载jdk

RUN yum -y install java-1.8.0-openjdk

#cd到工作目录

WORKDIR /opt

#拷贝jar包至镜像内

COPY ./ruoyi-admin.jar /opt

#运行jar包

CMD ["java","-jar","ruoyi-admin.jar"]

拉取redis、mysql、nginx镜像

创建ruoyi-vue目录

将之前创建的java目录和后端RuoYi-Vue目录移动到其中

这里还需要拷贝一份nginx的配置文件到当前目录方便挂载到nginx容器中,内容为下

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {

worker_connections 1024;

}

http {

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

types_hash_max_size 4096;

include /etc/nginx/mime.types;

default_type application/octet-stream;

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html;

}

location /prod-api/ {

proxy_pass http://java:8080/; #对应docker-compose.ym文件中java的容器名

}

}

}

开始创建docker-compose.yml文件

        编写文件内容

vim docker-compose.yml
#nginx镜像启动并映射端口与数据关联目录 编写的本地nginx配置文件挂载到容器的/etc/nginx 链接java镜像 编排 设置字符集
version: '3'
    services:
        ruoyi-web:
            image: nginx
            container_name: ruoyi
            hostname: ruoyi
            environment:
                - LANG=C.UTF-8
                - LC_ALL=C.UTF-8
            ports:
                - 808:80
            volumes:
                - ./RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/
                - ./nginx.conf:/etc/nginx/nginx.conf:ro
                - /mnt/nginx/log:/var/log/nginx
            links:
                - java
            depends_on:
                - java
#java镜像启动 链接数据镜像与redis镜像 编排
        java:
            build: ./java
            container_name: ruoyi-java
            hostname: ruoyi-java
            links:
                - db
                - redis
            depends_on:
                - db
                - redis
#数据库镜像启动配置环境变量 密码和数据库ry-vue 设置数据库字符集 映射数据目录 挂载sql语句文件到对应目录
        db:
            image: mysql:5.7
            container_name: mysql.server
            hostname: db
            environment:
                - MYSQL_ROOT_PASSWORD=Aa@123456
                - MYSQL_DATABASE=ry-vue
            command:
                --default-authentication-plugin=mysql_native_password
                --character-set-server=utf8mb4
                --collation-server=utf8mb4_general_ci
                --explicit_defaults_for_timestamp=true
                --lower_case_table_names=1
            volumes:
                - /opt/mysql-data:/var/lib/mysql
                - ./RuoYi-Vue/sql:/docker-entrypoint-initdb.d
#redis镜像启动
        redis:
            image: redis
            container_name: redis.server
            hostname: redis.server

开始部署

docker compose up

浏览器访问

希望能够帮助到大家!!!

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ruoyi-vue是一个基于Spring Boot和Vue.js的前后端分离的开发框架。与此同时,Docker是一种容器化技术,可以将应用程序和它们的依赖项打包到独立的容器中,并在任何环境中进行部署和运行。结合使用ruoyi-vueDocker可以带来一些好处。 首先,使用Docker可以提供一致性的开发和部署环境。无论是开发环境、测试环境还是生产环境,通过Docker容器,可以确保每个环境都具有相同的配置和依赖项,从而减少了由于环境差异而引起的问题,并且可以更轻松地迁移和部署应用程序。 其次,Docker使得ruoyi-vue应用程序的部署变得更加简单和可靠。通过使用Docker镜像,可以将整个ruoyi-vue应用程序及其所有依赖项打包为一个可移植的容器,并在任何支持Docker的主机上运行。这意味着可以更快速地部署和扩展应用程序,而不需要手动安装和配置所有依赖项。 此外,Docker还提供了隔离和安全性。每个Docker容器都是相互隔离的,这意味着ruoyi-vue应用程序可以在其自己的隔离环境中运行,不会对主机系统或其他容器造成影响。这种隔离性有助于减少因应用程序之间的冲突而引起的问题,并增加了应用程序的安全性。 总之,结合使用ruoyi-vueDocker可以带来许多好处,包括提供一致的开发和部署环境、简化应用程序部署、扩展和迁移,并增加应用程序的安全性。使用Docker可以让ruoyi-vue开发者更加专注于应用程序的开发,而不必太过关注环境和依赖项的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藻头男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值