Docker:部署若依前后端分离版

news2024/11/25 23:40:25

Docker:部署若依前后端分离版

  • 1. 停止天翼云上的原来跑的若依项目
  • 2. 停止腾讯云上的若依项目
  • 3. 使用Docker部署
    • 3.1 天翼云数据库&Redis
      • 3.1.1 部署数据库
      • 3.1.2 部署Redis数据库
      • 3.1.1 部署Nginx(这里被天翼云坑了换的腾讯云运行nginx)
    • 3.2 腾讯云部署后端&前端&Nginx
      • 3.2.1 部署前端
      • 3.2.2 部署后端
  • 注意
  • 参考

1. 停止天翼云上的原来跑的若依项目

ps -ef|grep 'java'

可以看到ruoyi 的进程是4969
在这里插入图片描述

kill -9 4969停止服务

2. 停止腾讯云上的若依项目

在这里插入图片描述

3. 使用Docker部署

3.1 天翼云数据库&Redis

3.1.1 部署数据库

# 1.删除原来的MySQL容器
docker rm -f mysql

# 2.进入root目录
cd ~

# 3.创建并运行新mysql容器,挂载本地目录
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=fanzhen123456789 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.1.2 部署Redis数据库

# 拉取redis镜像
docker pull redis

# 启动容器的时候,并为其设置密码
docker run -d --name myredis -p 6379:6379 redis --requirepass "123456"

在这里插入图片描述

3.1.1 部署Nginx(这里被天翼云坑了换的腾讯云运行nginx)

0. docker pull nginx:1.17.10
[root@rcodunix9knh8vfc ~]# docker pull nginx:1.17.10

1.创建nginx容器
[root@VM-8-7-centos nginx]# docker run -d --name nginx -p 8880:80 nginx:1.17.10

2.创建挂在目录
mkdir -p /data/nginx/{conf,log,html}

3.把Nginx容器中的文件进行复制
nginx.conf复制到主机
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf

4.将conf.d文件夹复制到主机
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d

5.把html目录复制到主机
docker cp nginx:/usr/share/nginx/html /data/nginx/

6.停止刚刚创建的nginx容器
docker stop nginx

7.删除刚刚创建的容器
docker rm nginx

8.重新创建容器
docker run -d --name nginx -p 8880:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
--privileged=true nginx:1.17.10

注意:
上面/data/nginx/html是服务器的地址
/usr/share/nginx/html是容器中的地址


9. 进入nginx的docker容器中
[root@VM-8-7-centos html]# docker exec -it aed99f4c5a55  /bin/bash

10.把容器中nginx配置生效
[root@VM-8-7-centos html]# docker exec -it  aed99f4c5a55  nginx -s reload

在这里插入图片描述

在这里插入图片描述

天翼云的坑
在这里插入图片描述

验证挂载
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2 腾讯云部署后端&前端&Nginx

3.2.1 部署前端

前端项目需要 npm install => npm install --registry=https://registry.npm.taobao.org
前段buildnpm run build:prod
会得到dist,然后将其打包,上传服务器到 /workspace(自己新建的文件夹),然后再解压。
在这里插入图片描述

fanzhen@fanzhendembp-2 ruoyi-ui % unzip dist.zip -d ./dist

在这里插入图片描述

在这里插入图片描述
前期的conf文件

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/dist/dist;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
使用此命令重新加载nginx文件
[root@VM-8-7-centos html]# docker exec -it  aed99f4c5a55  nginx -s reload

在这里插入图片描述
在这里插入图片描述

3.2.2 部署后端

需要改的地方
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

先clean后install
在这里插入图片描述

ruoyi-admin.jar移动到/root/workspace

在这里插入图片描述

在这里插入图片描述

DockerFile

# 基础镜像
FROM  java:8
# author
MAINTAINER guanhc

EXPOSE 8081

# 挂载目录
VOLUME /root/workspace
# 创建目录
RUN mkdir -p /home/ruoyi
# 指定路径
WORKDIR /home/ruoyi
# 复制jar文件到路径
COPY ruoyi-admin.jar /home/ruoyi/ruoyi-admin.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

在这里插入图片描述

查看日志

[root@VM-8-7-centos workspace]# docker logs 6cdecb251e20

在这里插入图片描述
在这里插入图片描述

重启Nginx在这里插入图片描述

nginx重新配置

upstream ruoyi{
    server 101.42.49.137:8081 weight=10;
}

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/dist/dist;
        index  index.html index.htm;
    }

     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://ruoyi/;
        }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}


别忘了 [root@VM-8-7-centos html]# docker exec -it aed99f4c5a55 nginx -s reload

最后跑起来了,当然可以部署多台后端服务器。
在这里插入图片描述

注意

docker阿里镜像申请https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

参考

  1. https://blog.csdn.net/Pan_peter/article/details/128807946

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

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

相关文章

ubuntu 20.04 自由切换 python 的版本

问题描述 当前 ubuntu 20.04 默认安装了多个 python 的版本,执行 python 时,默认版本是 Python 2.7.18 zhangszzhangsz:~$ python Python 2.7.18 (default, Jul 1 2022, 12:27:04) [GCC 9.4.0] on linux2 Type "help", "copyright&quo…

【unity知识点】Unity 协程Coroutine

文章目录 前言使用协程的步骤:使用场景示例:yield return new WaitForSeconds和yield return new WaitForFixedUpdate的区别开始和停止携程完结 前言 Unity 协程是一种特殊的函数,可以在游戏中实现延迟执行、按顺序执行和异步操作等功能。它…

多人协同开发git flow,创建初始化项目版本

文章目录 多人协同开发git flow,创建初始化项目版本1.gitee创建组织模拟多人协同开发2.git tag 打标签3.git push origin --tags 多人协同开发git flow,创建初始化项目版本 1.gitee创建组织模拟多人协同开发 组织中新建仓库 推送代码到我们组织的仓库 2…

uni-app设置地图显示

使用前需到**高德开放平台(https://lbs.amap.com/)**创建应用并申请Key 登录 高德开放平台,进入“控制台”,如果没有注册账号请先根据页面提示注册账号 打开 “应用管理” -> “我的应用”页面,点击“创建新应用”&…

Golang leetcode707 设计链表 (链表大成)

文章目录 设计链表 Leetcode707不使用头节点使用头节点 推荐** 设计链表 Leetcode707 题目要求我们通过实现几个方法来完成对链表的各个操作 由于在go语言中都为值传递,(注意这里与值类型、引用类型的而区别),所以即使我们直接在…

8个Python高效数据分析的技巧,不看肯定后悔~

本文介绍的数据分析方法,不仅能够提升运行效率,还能够使代码更加“优美”。 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够…

实现CodeWave 低代码开发平台快速应用开发的完整指南

目录 前言1 CodeWave开发流程2 应用创建2.1 新建应用2.2 从应用模板创建应用 3 数据模型设计3.1 实体设计3.2 结构设计3.3 枚举设计 4 逻辑设计4.1 查询数据源设置4.2 组件和属性配置4.3 属性设置与服务端全局变量 5 页面设计5.1 选择页面模板5.2 前端全局变量设计5.3 事件逻辑…

音视频技术开发周刊 | 326

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 全球最强「开源版Gemini」诞生!全能多模态模型Emu2登热榜,多项任务刷新SOTA 最强的全能多模态模型来了!就在近日,智源研究院…

红队打靶练习:SAR: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 小结 目录探测 1、gobuster 2、dirsearch WEB CMS 1、cms漏洞探索 2、RCE漏洞利用 提权 get user.txt 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface:…

系统学习Python——装饰器:函数装饰器-[对方法进行装饰:使用嵌套函数装饰方法]

分类目录:《系统学习Python》总目录 如果想要函数装饰器在简单函数和类级别的方法上都能工作,最直接的解决办法在于使用前面文章介绍的状态保持方案之一:把自己的函数装饰器编写为嵌套的def,这样你就不会陷入单一的self实例参数既…

【办公技巧】pdf打印没反应怎么办

正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…

找火鸡^^

欢迎来到程序小院 找火鸡 玩法:记忆翻牌游戏,不同关卡会有不同数目的火鸡,卡牌自由滚动,记住火鸡的位置, 规定的时间内找到火鸡所在的位置,快去找火鸡吧^^。开始游戏https://www.ormcc.com/play/gameStart…

江西速欣商务咨询有限公司:债务规划重组的专业法务咨询服务

在财务管理中,债务问题往往成为个人和企业面临的一项重要挑战。江西速欣商务咨询有限公司作为债务问题的专业解决者,致力于为客户提供高效而专业的债务规划重组法务咨询服务,帮助他们摆脱负担,重整财务秩序。 深谙债务规划的专业智…

Python 基础语法01

变量声明 #运算 num 1 num 1 print("num 1",num)num - 1 print("num - 1", num)num * 4 print("num * 4",num)num 3 num % 2 print("num%2",num)num ** 2 print("num ** 2", num)num 9 num // 2 print("num // …

JavaScript 中常用事件

前言: 介绍了什么是事件以及原理,还有常用的事件及使用 **如果演示结果不好理解,可以复制代码到自己的电脑中运行,这样你们可以更好理解也可以研究出好玩的,研究出的话顺便发给我也玩玩🤭 文章目录 什么是事件原理鼠标…

针对工行的LockBit勒索软件攻击表明了全球金融系统对网络攻击的脆弱性

内容概要: 11月8日,工行一家美国子公司被勒索软件入侵导致美国国债交易业务瘫痪,暴露了全球金融系统易受网络攻击的脆弱性。LockBit勒索软件集团声称对工行的攻击负责。工行是世界上资产规模最大的银行,管理着5.7万亿美元。这一网…

轻松提升软件性能:快速学习和使用Memcached

目录 1、前言 2、Memcached的简介 3、Memcached的安装与配置 4、Memcached的数据结构 5、Memcached的常用命令 6、Memcached的高级特性 7、Memcached在系统中如何使用 8、结语 1、前言 Memcached是一个广泛用于提升软件性能的开源内存缓存系统。它可以有效地减少对数据…

代码随想Day55 | 392.判断子序列、115.不同的子序列

392.判断子序列 第一种思路是双指针&#xff0c;详细代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {//双指针if(s.empty()&&t.empty()) return true;int i0,j0;while(i<t.size()){if(s[j]t[i]) j;if(js.size()) return t…

MySQL触发器的创建、查看、删除、存储过程与触发器的区别等

MySQL触发器 1、什么是触发器2、创建触发器3、查看所有的触发器4、删除触发器5、常见的触发器案例6、存储过程与触发器的区别 1、什么是触发器 简单点来说触发器就是一个特殊的存储过程&#xff0c;不过存储过程需要手动调用&#xff0c;而触发器自动调用。 一张图来简单说明…

GPT编程(1)八分类图像数据集转换为二分类

一个核心问题就是要将这八类数据图片全部重命名&#xff0c;尝试了一步到位 有一个图像数据集&#xff0c;有八个类别amusement,anger,awe,contentment,disgust, excitement, fear,sadness的图片&#xff0c;每张图片被命名为“类别数字”。采用遍历的方式&#xff0c;按顺序阅…