使用docker-compose编排ruoyi项目

目录

一、开始部署

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.3container_name: ruoyi-webhostname: ruoyi-webenvironment:- LANG=C.UTF-8- LC_ALL=C.UTF-8ports: - 8888:80volumes: - ./RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/- ./nginx.conf:/etc/nginx/nginx.conf:rolinks: - java:java.comdepends_on:- javajava: build: ./javacontainer_name: java.serverhostname: javaenvironment:- LANG=C.UTF-8- LC_ALL=C.UTF-8links:- db:mysql.server- redis:redis.serverdepends_on:- db- redisdb:image: mysql:5.7container_name: mysql.serverhostname: dbenvironment:- MYSQL_ROOT_PASSWORD=123456- MYSQL_DATABASE=ry-vue- LANG=C.UTF-8- LC_ALL=C.UTF-8command: - --character-set-server=utf8mb4- --collation-server=utf8mb4_general_civolumes:- /opt/mysql-data4:/var/lib/mysql- ./RuoYi-Vue/sql:/docker-entrypoint-initdb.d      redis:  image: rediscontainer_name: redis.serverhostname: redis:redis.serverenvironment:- 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.mzph.cn/news/735415.shtml

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

相关文章

Idea导入Maven项目

方法一:使用Maven面板 方法二:在项目结构中设置,在最后一步中选择pom.xml。

js【详解】bind()、call()、apply()( 含手写 bind,手写 call,手写 apply )

必备知识点:js 【详解】函数中的 this 指向_js function this-CSDN博客 https://blog.csdn.net/weixin_41192489/article/details/123093256 bind、call、apply 的相同点 都是Function原型上的方法用途都是改变 this 的指向第一个参数都是新的 this bind、call、app…

前端学习之列表标签

目录 有序列表 结果 无序标签 结果 数据标签 结果 有序列表 &#xff08;注&#xff1a;注释是解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </…

SpringBoot实现 PDF 添加水印

方案一&#xff1a;使用 Apache PDFBox 库 ①、依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version> </dependency>②、添加水印 public class PdfoxWaterma…

蓝桥集训之日期差值

蓝桥集训之日期差值 模版&#xff1a;判断闰年 总天数 月份天数 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int months[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int is_leap(int y){if(y % 10…

【JavaEE初阶系列】——计算机是如何工作的

目录 &#x1f388;冯诺依曼体系 ❗外存和内存的概念 ❗CPU中央处理器—人类当今科技领域巅峰之作之一 &#x1f6a9;如何衡量cpu &#x1f6a9;指令&#xff08;Instruction&#xff09; &#x1f388;操作系统&#xff08;Operating System&#xff09; &#x1f388;…

关于GPU显卡的介绍

一.关于英伟达历代产品架构 显卡是一种计算机硬件设备,也被称为显示适配器或图形处理器。目前的硬件部分主要由主板、芯片、存储器、散热器&#xff08;散热片、风扇&#xff09;等部分。显卡的主要芯片是显卡的主要处理单元。显卡上也有和计算机存储器相似的存储器&#xff0…

聊聊.NET中的连接池

在.NET中&#xff0c;连接池被广泛用于管理和优化不同类型资源的连接。连接池可以减少建立和关闭连接所需的时间和资源消耗&#xff0c;从而提高了应用程序的性能和响应能力。 HttpClient中的连接池 System.Net.Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源…

安全测试报告-模板内容

1. 概述 为检验XXXX平台 系统的安全性&#xff0c;于 XXXX年 XX 月 XX 日至 XXXX年 XX 月 XX日对目标系统进行了安全测试。在此期间测试人员将使用各 种非破坏性质的攻击手段&#xff0c;对目标系统做深入的探测分析&#xff0c;进而挖掘系统中的安 全漏洞和风险隐患。研发团队…

代码讲解:如何把3D数据转换成旋转的视频?

目录 3D数据集下载 读取binvox文件 使用matplotlib创建图 动画效果 完整代码 3D数据集下载 这里以shapenet数据集为例&#xff0c;可以访问外网的可以去直接申请下载&#xff1b;我也准备了一个备份在百度网盘的数据集&#xff0c;可以参考&#xff1a; ShapeNet简介和下…

Java适配器模式源码剖析及使用场景

文章目录 一、适配器模式介绍二、大白话理解三、 项目案例四、Java源码 一、适配器模式介绍 适配器模式(Adapter Pattern)是一种结构型设计模式,它作用于将一个类的接口转换成客户端所期望的另一种接口,从而使原本由于接口不兼容而无法一起工作的那些类可以在一起工作。它属于…

Vue3中Vue Router的使用区别

在 Vue 3 中&#xff0c;useRouter 和 useRoute 是两个用于 Vue Router 的 Composition API 函数&#xff0c;它们的用途和返回的对象不同&#xff0c;接下来详细了解一下它们的区别以及如何正确使用它们。 useRouter useRouter 用于获取 router 实例&#xff0c;这个实例提供…

macOS14.4安装FFmpeg及编译FFmpeg源码

下载二进制及源码包 二进制 使用brew安装ffmpeg : brew install ffmpeg 成功更新到ffmpeg6.1 下载FFmpeg源码

MIT 6.858 计算机系统安全讲义 2014 秋季(三)

译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 SSL/TLS 和 HTTPS **注意&#xff1a;**这些讲座笔记略有修改自 2014 年 6.858 课程网站上发布的笔记。 这节课涉及两个相关主题&#xff1a; 如何在比 Kerberos 更大规模上加密保护网络通信&#xff1f; 技术&#xf…

LVS (Linux Virtual server)集群介绍

一 集群和分布式 &#xff08;一&#xff09;系统性能扩展方式&#xff1a; Scale UP&#xff1a;垂直扩展&#xff0c;向上扩展,增强&#xff0c;性能更强的计算机运行同样的服务 &#xff08;即升级单机的硬件设备&#xff09; Scale Out&#xff1a;水平扩展&#xff0…

Anaconda prompt运行打开jupyter notebook 指令出错解决方案

一、打不开jupyter notebook网页 报错如下&#xff1a; Traceback (most recent call last): File “D:\anaconda3\lib\site-packages\notebook\traittypes.py”, line 235, in _resolve_classes klass self._resolve_string(klass) File “C:\Users\DELL\AppData\Roaming\Py…

单文件组件SFC及Vue CLI脚手架的安装使用

单文件组件SFC及Vue CLI脚手架的安装使用 Vue 单文件组件&#xff08;又名 *.vue 文件&#xff0c;缩写为 SFC&#xff09;是一种特殊的文件格式&#xff0c;它允许将 Vue 组件的模板、逻辑 与 样式封装在单个文件中。 为什么要使用 SFC 使用 SFC 必须使用构建工具&#xff…

Pycharm jupyter server process exited with code 1

Pycharm jupyter server process exited with code 1 1. 问题描述2. 原因和解决方法 1. 问题描述 使用 Pycharm 启动 Jupyter 时&#xff0c;报错如下&#xff0c; jupyter server process exited with code 12. 原因和解决方法 Pycharm 启动 jupyter 时&#xff0c;默认的 …

Linux:开源世界的基石

Linux&#xff1a;开源世界的基石 在信息技术的海洋中&#xff0c;Linux像一座灯塔&#xff0c;照亮了开源文化的道路&#xff0c;成为了无数技术爱好者、开发者和企业的选择。作为一个操作系统的内核&#xff0c;Linux的出现犹如一阵清风&#xff0c;打破了操作系统市场的一统…

Vue class和style绑定:动态美化你的组件

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…