ry-vue docker部署

目錄

整體架構概覽

創建 Docker 自定義網絡

Redis 部署(緩存服務)

redis.conf修改

啟動 Redis 容器

測試

啟動 MySQL 容器

允許 root 用戶遠程訪問(%)

初始化數據庫(可選)

RuoYi-Admin 后端服務部署服務

使用mvn或idea打包

使用Dockerfile自定義鏡像

訪問后臺

Nginx 部署(Web 服務器 & 反向代理)

啟動 Nginx 容器

上傳解壓

訪問前臺

前端部署

修改vue.config.js配置

安裝依賴

打包


整體架構概覽

模塊 技術/角色 說明

網絡 Docker Network 自定義網絡 net-ry,用于容器間通信

緩存 Redis 通過 Docker 運行,供后端緩存使用

數據庫 MySQL 5.7 通過 Docker 運行,數據持久化,供后端連接

后端服務 RuoYi-Admin (Java) 基于 Spring Boot,連接 MySQL 和 Redis

前端項目 Vue (RuoYi-Vue) 前端 Vue 項目,打包后由 Nginx 托管

Web 服務器 Nginx 托管前端靜態資源,反向代理后端 API

創建 Docker 自定義網絡

docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1

作用??:讓 redis、mysql、ruoyi-admin、nginx等容器處于同一網絡下,可以通過 ??容器名互相訪問??,而無需關心宿主機的 IP 或端口映射。

提示??:--subnet和 --gateway是可選的,但建議設置,便于管理。如果不設置,Docker 會自動分配。

--subnet 指定Docker 自定義網絡的 IP 段,如 172.68.0.0/16

--gateway 指定該網絡的網關地址,通常是子網的第一個 IP,如 172.68.0.1

Redis 部署(緩存服務)

#創建目錄 mkdir -p /data/redis/{conf,data} #上傳redis.conf文件到/data/redis/conf文件夾中

  • /data/redis/conf/redis.conf:Redis 配置文件,需自定義

  • /data/redis/data:Redis 數據持久化目錄

  • redis.conf官方配置文件

redis.conf修改

  1. 允許redis外地連接

#bind 127.0.0.1改成為
bind 0.0.0.0
  1. 開啟redis驗證(可選)

requirepass sasa
  1. 開啟redis數據持久化(可選)

appendonly yes

啟動 Redis 容器

docker run -itd --name zking-redis -p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
--privileged=true --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf 

測試

# 進入 Redis 容器命令行
$ docker exec -it zking-redis bash
# 使用 redis-cli 連接 Redis
$ redis-cli
# 默認連接到 127.0.0.1:6379,如果配置了密碼,需要先認證:
$ 127.0.0.1:6379> ping
# 如果設置了密碼,會返回 (error) NOAUTH Authentication required.**
# 先進行認證:
$ 127.0.0.1:6379> auth sasa
OK
# 再次測試
$ 127.0.0.1:6379> ping
PONG
表示 Redis 運行正常,且密碼認證成功。
客戶端連接

## MySQL 部署(數據庫服務)

#創建文件夾 mkdir -p /data/mysql/{conf,data} #上傳my.cnf文件到/data/mysql/conf文件夾中

  • /data/mysql/conf/my.cnf:可選,如需自定義 MySQL 配置(字符集、時區等

  • /data/mysql/data:數據持久化目錄

  • 修改官方my.cnf 讓其支持中文

啟動 MySQL 容器

docker run -d --name zking-mysql --network net-ry  \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true --restart=always \
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
mysql/mysql-server:5.7

MYSQL_ROOT_PASSWORD=sasa:設置 root 密碼

容器名 zking-mysql,后端可通過該名稱訪問

默認字符集可能不支持中文,如需支持 utf8mb4,需在 my.cnf中配置

允許 root 用戶遠程訪問(%)

# 進入容器
docker exec -it zking-mysql /bin/bash
# 登錄mysql
mysql -u root -p
Enter password: sasa
# 創建允許所有IP訪問的root賬戶(或修改現有)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sasa' WITH GRANT OPTION;
# 刷新權限
FLUSH PRIVILEGES;

初始化數據庫(可選)

注:數據庫 ry 創建x'z

url: jdbc:mysql://zking-mysql:3306/ry?
username: root
password: sasa

① 使用客戶端navicat.exe 導入SQL文件

② SQL文件rz到 /data/mysql/data,進入容器登錄mysql >source /var/lib/mysql/ sql 文件 名稱;

RuoYi-Admin 后端服務部署服務

使用mvn或idea打包

  • 修改application-druid.yml配置了mysql

    • url: jdbc:mysql://zking-mysql:3306/ry

      • zking-mysql是容器名

  • 修改application.yml

    • redis:# 地址host: zking-redis #是容器名# 端口,默認為6379port: 6379# 數據庫索引database: 0# 密碼password: sasa # 如果設置了密碼
  • 修改logback.xml日志文件位置,application.xml文件上傳位置

  • 選擇ruoyi中的package打包

使用Dockerfile自定義鏡像

# 安裝jdk 8
docker pull docker.1ms.run/adoptopenjdk/openjdk8# 上傳ruoyi-admin.jar
mkdir ruoyi-admin
ruoyi-admin/
├── Dockerfile          <-- Docker 構建腳本
└── ruoyi-admin.jar     <-- 您用 Maven 打包出來的 Spring Boot 可運行 Jar 包# vi Dockerfile 如下:
FROM docker.1ms.run/adoptopenjdk/openjdk8
MAINTAINER "donkee@vip.qq.com"
ADD ruoyi-admin.jar /opt/app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/opt/app.jar"]
# 自定義鏡像
docker build -t ruoyi-admin .
# 運行容器
docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080  ruoyi-admin

訪問后臺

$ systemctl status firewalld
$ systemctl stop firewalld[root@localhost ~]# curl http://192.168.58.128:8080
歡迎使用RuoYi后臺管理框架,當前版本:v3.8.5,請通過前端地址訪問。

Nginx 部署(Web 服務器 & 反向代理)

#創建目錄 mkdir -p /data/nginx/{conf,html} #上傳nginx.conf至/data/nginx/conf文件夾中

  • /data/nginx/conf/nginx.conf:Nginx 主配置,可配置代理與靜態資源

  • /data/nginx/html:存放前端打包后的靜態文件(dist)

  • nginx.conf 去 ry-vue前后端分離官網

啟動 Nginx 容器

docker run -itd --name zking-nginx --network net-ry -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/html:/usr/share/nginx/html \
--privileged=true --restart=always \
nginx

前端打包的 dist文件夾內容,需上傳到 /data/nginx/html

上傳解壓

#改變當前目錄
cd /data/nginx/html
#安裝unzip工具
yum install -y unzip
#上傳
rz
#解壓
unzip dist.zip

訪問前臺

瀏覽器 http://192.168.58.128:80

前端部署

修改vue.config.js配置

  devServer: {host: '0.0.0.0',port: port,open: true,proxy: {// detail: https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]: {//修改ruoyi-admin后臺地址target: `http://ruoyi-admin:8080`,changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: ''}}},disableHostCheck: true},

安裝依賴

# 安裝依賴
npm install
# 本地開發 啟動項目
npm run dev

打包

# 打包正式環境
npm run build:prod
# 打包預發布環境
npm run build:stage

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis之Keys命令和Scan命令

序言 網上看到的面試題&#xff1a;Redis有1億個key&#xff0c;其中10w個key是以某個固定的前綴開頭&#xff0c;如何將它們全部找出來&#xff1f;一般有兩種命令可以實現&#xff1a; Keys命令Scan命令 下面具體分析一下兩種命令 Keys命令 Keys pattern如下圖所示&…

【小沐學GIS】基于Godot繪制三維數字地球Earth(Godot)

&#x1f37a;三維數字地球GIS系列相關文章&#xff08;C&#xff09;如下&#x1f37a;&#xff1a;1【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&…

day62 Floyd 算法 A * 算法

Floyd 算法本題是經典的多源最短路問題.Floyd 算法對邊的權值正負沒有要求&#xff0c;都可以處理。Floyd算法核心思想是動態規劃。例如我們再求節點1 到 節點9 的最短距離&#xff0c;用二維數組來表示即&#xff1a;grid[1][9]&#xff0c;如果最短距離是10 &#xff0c;那就…

【軟考論文】論可觀測性架構技術的應用

&#x1f381; 考高級架構師的小伙伴注意了&#xff01;&#x1f4e2; 軟考架構論文示例 2025年11月軟考架構論文預測&#x1f44d; 一、歷年論文題目 無&#xff01;&#xff01;&#xff01; 二、考情分析 “可觀測性技術”這一論題&#xff0c;目前在高級架構師與高級系統分…

軟件測試:測試分類(一)

常用測試分類1.功能測試&#xff08;人對功能的確定&#xff0c;保證某個功能可以正常進行&#xff09;如驗證你輸入正確的手機號碼和密碼是否登錄成功。手機號碼不存在是否有提示&#xff0c;密碼不正確是否有提示等2.自動化測試&#xff08;如jmeter&#xff0c;屬于黑盒測試…

BigFoot (Method Raid Tools)[MRT] (Event Alert Mod)[EAM]

檢查法術技能ID&#xff0c;需要EAM命令&#xff0c;所以要先安裝EAM BigFoot EventAlertMod lua-CSDN博客 /eam lookup 冰封之韌 同時我們發現一個糟糕的問題&#xff0c;為什么會有這么多ID呢&#xff0c;默認第一個 還有一種法子就是讓別人開了技能告訴你ID&#xff0c;最…

【Scrapy-Redis】分布式爬蟲實戰(非常詳細)

一、概要 1.分布式爬蟲概念 分布式爬蟲是一種利用多臺機器協同工作的網絡爬蟲系統&#xff0c;通過任務分解、并行處理和資源共享&#xff0c;高效抓取并處理海量網頁數據。其核心在于將爬取任務分配到不同節點&#xff0c;避免單點性能瓶頸&#xff0c;同時支持動態擴展和容錯…

基于51單片機智能化交通紅綠燈堵車流量紅外設計

1 系統功能介紹 本設計題目為 基于51單片機智能化交通紅綠燈堵車流量紅外設計&#xff0c;主要用于十字路口交通信號智能控制&#xff0c;通過紅外避障檢測車流量&#xff0c;自動調節紅綠燈時間&#xff0c;緩解擁堵。該系統由單片機、LED燈、紅外避障傳感器、LCD1602液晶顯示…

VsCode 上的Opencv(C++)環境配置(Linux)

1.下載Opencv1.新建文件demo_cpp,在demo_cpp中新建third_parties文件2.OPENCV官網下載OpenCV-4.12.03.將下載好的opencv-4.12.0.zip壓縮包在third_parties中解壓,//以下均無特殊說明,均在vscode里的TERMINAL中輸入 sudo apt-get install unzip//用于解壓.zip文件 cd third_part…

sql xml模板

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"com.example.mapper.UserMapper&quo…

docker在自定義網絡中安裝ElasticSearch和Kibana

創建自定義網絡 創建一個名為 es-net 的橋接網絡。這將作為 Elasticsearch 和 Kibana 的私有通信通道。 # 創建網絡 docker network create es-net # 查看網絡是否創建成功 docker network ls啟動 Elasticsearch 容器 安裝命令 docker run -d \--name elasticsearch \--net…

基于51單片機射頻RFID停車刷卡計時收費系統設計

1 系統功能介紹 本設計題目為 基于51單片機射頻RFID停車刷卡計時收費系統設計&#xff0c;旨在實現停車場車輛的刷卡計時和收費管理。系統通過單片機控制&#xff0c;結合 RFID 射頻識別技術、LCD1602 顯示以及蜂鳴器報警&#xff0c;實現停車時間的智能計時、累加及超時提醒功…

Netty源碼—性能優化和設計模式

1.Netty的兩大性能優化工具 (1)FastThreadLocal FastThreadLocal的作用與ThreadLocal相當&#xff0c;但比ThreadLocal更快。ThreadLocal的作用是多線程訪問同一變量時能夠通過線程本地化的方式避免多線程競爭、實現線程隔離。 Netty的FastThreadLocal重新實現了JDK的ThreadLoc…

Linux網絡設備分析

?? Linux 網絡設備驅動深入分析 本文將詳細分析 Linux 網絡設備驅動的工作原理、實現機制和代碼框架,并通過一個虛擬網卡實例展示其實現,最后介紹常用的工具和調試手段。 1?? Linux 網絡設備驅動概述 Linux 網絡設備驅動是內核中負責管理網絡硬件(如以太網卡、Wi-Fi …

計算機視覺:從 “看見” 到 “理解”,解鎖機器感知世界的密碼

早上醒來&#xff0c;你拿起手機&#xff0c;人臉識別瞬間解鎖屏幕&#xff1b;開車上班時&#xff0c;車載系統通過攝像頭實時識別車道線&#xff0c;提醒你不要偏離&#xff1b;去醫院做檢查&#xff0c;醫生用 AI 輔助的醫學影像系統快速定位肺部微小結節&#xff1b;逛超市…

深入了解linux系統—— 線程封裝

C11線程庫 C11也提供了對應的線程庫&#xff0c;在頭文件<thread>中&#xff1b;C11將其封裝成thread類&#xff0c;通過類實例化出對象&#xff0c;調用類內成員方法進行線程控制。 #include <iostream> #include <thread> #include <unistd.h> using…

安全防御-SCDN如何保護網站安全

隨著互聯網的快速發展&#xff0c;越來越多的企業依賴在線服務來運行其核心業務。與此同時&#xff0c;網絡攻擊的頻率和復雜性也在不斷增加&#xff0c;惡意流量成為許多企業頭疼的問題。為了有效地提高網站的安全性和穩定性&#xff0c;德迅云安全加速SCDN被許多用戶關注。今…

運籌優化(OR)-在機器學習(ML)浪潮中何去何從?

在如今機器學習的浪潮中&#xff0c;機器學習相關的崗位日益增多&#xff0c;而運籌優化的崗位卻相對較少。這是今年我秋招過程中看到的現象。企業越來越希望候選人不僅能建模求解&#xff0c;還能理解如何用數據驅動優化。需要我們有一個完整的技術棧。那么我們就來看看OR與ML…

GitHub Copilot 在 VS Code 上的終極中文指南:從安裝到高階玩法

GitHub Copilot 在 VS Code 上的終極中文指南&#xff1a;從安裝到高階玩法 前言 GitHub Copilot 作為 AI 編程助手&#xff0c;正在徹底改變開發者的編碼體驗。本文將針對中文開發者&#xff0c;深度解析如何在 VS Code 中高效使用 Copilot&#xff0c;涵蓋基礎設置、中文優化…

安全測試、web探測、httpx

&#x1f4a2; 簡介 httpx 是一個快速且多用途的HTTP工具包&#xff0c;允許使用retryablehttp庫運行多個探測器。它旨在通過增加線程數量來保持結果的可靠性。 功能 &#x1f92a; 發送 GET、POST、PUT、DELETE 等 HTTP 請求支持流式傳輸支持重定向支持身份驗證支持代理支持 …