使用docker-compose编排ruoyi项目

news2024/9/23 1:30:47

目录

一、开始部署

1.拉取ruoyi代码

2.拉取node镜像

3.拉取maven镜像

4.在/root/ruoyi/java下写一个Dockerfile用于后端Java环境

5.拉取MySQL,Redis,Nginx镜像

6.在/root/java目录下写一个nginx.conf

7.在/root/ruoyi目录下写docker-compose.yml文件

8.启动

9.浏览器访问


一、开始部署

1.拉取ruoyi代码

mkdir /root/ruoyi

cd /root/ruoyi

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

①修改ruoyi的配置文件

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

如下图:

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

如下图:

2.拉取node镜像

docker pull node:12

①进入到RuoYi-Vue目录

cd /root/ruoyi/RuoYi-Vue

②启动node镜像

docker run -itd --rm -v ./ruoyi-ui:/opt node:12 /bin/bash

③进入到/opt下(我选择映射在/opt)

root@10cb919b400e:/# cd /opt

③打包前端代码

root@10cb919b400e:/opt# npm install

成功如下图: 

root@10cb919b400e:/opt# npm run build:prod

 成功如下图:

在/root/ruoyi/RuoYi-Vue/ruoyi-ui目录下会生成一个dist目录

3.拉取maven镜像

docker pull maven:3.6.3-openjdk-11

① 启动maven镜像

[root@localhost ~]# docker run -it --rm -v ./RuoYi-Vue:/vue  maven:3.6.3-openjdk-11 /bin/bash

②进入到/vue

root@61d9e34ad172:/# cd /vue/

③打包后端项目

root@61d9e34ad172:/vue# mvn package

成功如下图:

 ④退出maven容器,将/root/ruoyi/RuoYi-Vue/ruoyi-admin/target/ ruoyi-admin.jar移到/ruoyi下

[root@localhost target]# mv ruoyi-admin.jar /root/ruoyi

4.在/root/ruoyi/java下写一个Dockerfile用于后端Java环境

①mkdir /root/java

    cd /root/java 

   vim Dockerfile

FROM centos:7
run yum -y install java-1.8.0
WORKDIR /opt
COPY ./ruoyi-admin.jar /opt
CMD [ "lava","-jar","ruoyi-admin.jar" ]

5.拉取MySQL,Redis,Nginx镜像

[root@localhost ~]# docker pull mysql:5.7
[root@localhost ~]# docker pull redis
[root@localhost ~]# docker pull nginx:1.25.3

6.在/root/java目录下写一个nginx.conf

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
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;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    #include /etc/nginx/conf.d/*.conf;

    server {
        listen 80;
        server_name localhost;
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
         location /prod-api/ {
             proxy_pass http://java.com:8080/;
         }
    }
# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

7.在/root/ruoyi目录下写docker-compose.yml文件

version: '3'
services:
  ruoyi-web:
    image: nginx:1.25.3
    container_name: ruoyi-web
    hostname: ruoyi-web
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    ports: 
      - 8888:80
    volumes: 
      - ./RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    links: 
      - java:java.com
    depends_on:
      - java
  java: 
    build: ./java
    container_name: java.server
    hostname: java
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    links:
      - db:mysql.server
      - redis:redis.server
    depends_on:
      - db
      - redis
  db:
    image: mysql:5.7
    container_name: mysql.server
    hostname: db
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=ry-vue
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    command: 
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
    volumes:
      - /opt/mysql-data4:/var/lib/mysql
      - ./RuoYi-Vue/sql:/docker-entrypoint-initdb.d      
  redis:  
    image: redis
    container_name: redis.server
    hostname: redis:redis.server
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8

8.启动

cd /root/ruoyi目录下

[root@localhost ruoyi]# docker compose up

9.浏览器访问

10.12.153.93:8888

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1502965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络——计算机网络的性能

计算机网络——计算机网络的性能 速率带宽吞吐量时延时延宽带积往返时间RTT利用率信道利用率网络利用率 我们今天来看看计算机网络的性能。 速率 速率这个很简单,就是数据的传送速率,也称为数据率,或者比特率,单位为bit/s&#…

Spring boot 请求参数包含[]等特殊字符,导致无法接收问题

前言对字符进行转义修改tomcat 配置 前言 Spring boot 请求参数包含[]等特殊字符,导致无法接收问题 对字符进行转义 中括号[] 必须用%5B%5D转义,否则tomcat无法解析,回抛出不合法字符异常,不会进入控制器 修改tomcat 配置 p…

JavaEE企业开发新技术

目录 2.1 Class对象基本概念 1、概念 2.2 Class对象的获取方式 2.3基本数据类型的Class对象 1、概念 2.4 反射的基本概念 概念 2.5 Class对象的基本使用-1 2.6 Class对象的基本使用-2 newInstance()和new()区别: 2.1 Class对象基本概念 1、概念 反射的…

【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数

作者推荐 视频算法专题 本文涉及知识点 字符串 贪心 树状数组 分类讨论 LeetCode2193. 得到回文串的最少操作次数 给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串…

Qt5.14.2揭秘Qt与SSL/TLS的完美邂逅:打造坚不可摧的网络安全防线

引言: 在数字化时代,数据安全是每个开发者和用户都不可忽视的问题。Qt,作为一个强大的跨平台开发框架,为我们提供了丰富的网络功能,其中就包括了对SSL/TLS加密通信的支持。本文将带你深入了解如何在Qt中实现SSL证书认证…

【力扣白嫖日记】1174.即时食物配送II

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1174.即时食物配送II 表:Person 列名类型delivery_idintcustomer_idintorder_datedatecustomer_…

C# winform 重启电脑

一、重启电脑指令 windows7系统的启动文件夹为“开始菜单”——“所有程序”里面就有“启动”文件夹,其位置是 “C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 如果没有,则需要将其中的"administrator…

PHP storm连接阿里云服务器

阿里云开放端口 :1024/65535 然后宝塔 FTP 设置账户密码 和开放的文件目录 SFTP :账号root 密码:阿里云设置的密码

什么是MAE和MSE?

平均绝对误差(Mean Absolute Error,MAE)和平均方差误差(Mean Squared Error,MSE)是常用的评价回归模型性能的指标。它们用于衡量模型预测值与真实值之间的差异。 在深度学习领域,MAE 和 MSE 是…

Centos7安装Gogs完整教程

前言 本文章讲的是如何在Centos7下安装git服务器Gogs,本文参考了网络上的文章和官方文档。根据本文来操作可以完美安装Gogs,如果有其他问题或者看法,可以在评论区留下你的问题或看法。如果觉得本文对你有用,还请点赞和收藏一下。…

【新书推荐】17.3 字符串操作举例

本节内容:字符串操作举例。 ■例3:接收字符串去掉空格后逆向输出,t17-3.asm。 ■例4:字符串拼接,t17-4.asm。 ■例5:判断子串,t17-5.asm。 17.3.1 例3:接收字符串去掉空格后逆向输出…

【正点原子STM32探索者】CubeMX+Keil开发环境搭建

文章目录 一、简单开箱二、资料下载三、环境搭建3.1 安装Keil MDK3.2 激活Keil MDK3.3 安装STM32CubeMX3.4 安装STM32F4系列MCU的Keil支持包 四、GPIO点灯4.1 查阅开发板原理图4.2 创建STM32CubeMX项目4.3 配置系统时钟和引脚功能4.4 生成Keil项目4.5 打开Keil项目4.6 编译Keil…

回收站选址(CCF 201912-2)解题思路

分析 把x,y坐标拼接成一个字符串(x,y)作为Set的key,保存到Set中,遍历Set,取出坐标,然后判断上下左右四个点是否在Set中,如果在,进而判断,四个角是否在Set中,…

git学习(创建项目提交代码)

目录 操作步骤如下 1.创建项目 2.初始化项目 3.初始化项目 4.创建一个文本文件将其推送到远程仓库 5.添加到暂存区 查看提交状态 git push 返送到暂存区 git statues 7.提交 8. 返回远程仓库检查是否上传成功 操作步骤如下 git init //初始化git remote add origin ht…

《C缺陷和陷阱》-笔记(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、理解函数声明 1.(*(void(*)( ))0)( ); 2.signal 函数接受两个参数: 3.使用typedef 简化函数声明: 二、运算符的优先级…

uniapp踩坑之项目:uni.previewImage简易版预览单图片

主要使用uni.previewImage //html <view class"box-card" v-for"(item,index) in DataList" :key"index"><view>图片&#xff1a;</view><image :src"item.Path" tap.stop"clickImg(item.Path)">&l…

如何深度学习

信息爆炸时代&#xff0c;诞生了很多新的学习方式&#xff0c;非常轻松就能掌握知识&#xff0c;比如&#xff0c;每天听一本书&#xff0c;半个小时就能学习一本书的精华&#xff0c;比如订阅名家专栏或者课程&#xff0c;在不长的时间内内就能学到很多知识。 很多人认为这样…

HTML5页面布局

1,图文混排布局 img {float: right;}p {font-size: 32px;} <div class"sec"><img src"penguin.png" alt"penguin"><p>With no change in the rule, the more you grow the more envious you be123 123132312...</p> &l…

安全测试工具Burpsuit和OWASP ZAP使用入门指南

Burpsuit使用入门指南 安装&#xff1a; 网上有很多相关相关保姆级别教程&#xff0c;所以这里不加赘述了尽量使用java8版本&#xff0c;破解版兼容8做的比较好如果发现注册机无法打开或者能打开注册机【run】无法点击唤起软件安装&#xff0c;可以使用命令行工具 java -jar …

JavaScript 实现飞机大战

文章目录 一些关键点概览&#xff1a;核心模块的具体实现示例&#xff1a;飞机类&#xff08;Plane&#xff09;的基本结构&#xff1a;子弹类&#xff08;Bullet&#xff09;的基本结构&#xff1a;敌机类&#xff08;Enemy&#xff09;的基本结构&#xff1a; 基于前面定义的…