Docker之ruoyi-vue项目部署

文章目录

    • 创建自定义网络
    • 安装redis
    • 安装mysql
    • 发布若依项目--后端
      • 使用Dockerfile自定义镜像
      • 运行容器
    • nginx

创建自定义网络

#搭建net-ry局域网,用于部署若依项目
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1

注意1:关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用
关闭防火墙
systemctl stop firewalld
查看状态
systemctl status firewalld

注意2:关闭防火墙后必须重启docker,否者出现如下错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint ruoyi-admin (399a34630e6ef8e4ed7cf20d46b9654c8d535d0fe44ceadebf8bd605d3da35b8): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.68.0.4:8080 ! -i br-c34635070c6f: iptables: No chain/target/match by that name.
可以参考该地址

安装redis

创建目录
mkdir -p /data/redis/{conf,data}
上传redis.conf文件到/data/redis/conf文件夹中

redis.conf文件不需要做任何更改
#bind 127.0.0.1改成为bind 0.0.0.0:充许任何主机访问
daemonize no :将原yes改成no :redis数据持久化
requirepass sasa: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 :让容器root用户拥有最高权限,否则可能会出现权限不够错误
#--restart=always:创建之后总是自启动
--privileged=true --restart=always \
--network net-ry redis \
#容器启动时执行的命令及读取的配置--启动redis
redis-server /etc/redis/redis.conf

安装mysql

创建文件夹
mkdir -p /data/mysql/{conf,data}
上传my.cnf文件到/data/mysql/conf文件夹中 (可以将my2.cnf修改好在Linux中重命名为my.cnf)
mv my2.cnf 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 :让容器root用户拥有最高权限,否则可能会出现权限不够错误
#--restart=always:创建之后总是自启动
--privileged=true --restart=always \
#设置root的密码
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
#使用mysql5.7的镜像
mysql/mysql-server:5.7

充许远程连接
进入容器
docker exec -it zking-mysql /bin/bash
登录
mysql -u root -p;
创建用户及授权
grant all privileges on . to root@‘%’ identified by ‘sasa’ with grant option;
刷新权限
flush privileges;

创建数据库
使用navcat新建数据库
新建连接–>ry数据库–>utf8编码–>utf8_general_ci排序规则–>运行sql文件

发布若依项目–后端

使用Dockerfile自定义镜像

切换到家目录
cd ~
mdkir ruoyi-admin
cd ruoyi-admin

编写Dockerfile文件内容
vi Dockerfile

#指定基础镜像
FROM anapsix/alpine-java:8_server-jre_unlimited
#维护者信息
MAINTAINER "donkee@vip.qq.com"
#应该使用copy,但是他不是特定格式,不会解压
#正常情况,复制当前目录中的项目到容器的opt目录,并重命名为app.jar
ADD ruoyi-admin.jar /opt/app.jar
#暴露8080端口
EXPOSE 8080
#再容器启动时执行以下命名,相当于执行后端服务--java -jar
ENTRYPOINT ["java","-jar","/opt/app.jar"]

上传ruoyi-admin.jar到Dockerfile文件所在目录
rz ruoyi-admin.jar
zking-admin为镜像名称,开始制作镜像
v1.0后面有一个==.==

docker build -t zking-admin:v1.0 .

没加会报错

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/
"docker build" requires exactly 1 argument.
See 'docker build --help'.
Usage:  docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
------------------------------------------------------------------------------------------------------------
DEPRECATED:遗留构建器已弃用,并将在将来的版本中删除。
安装builddx组件来使用BuildKit构建映像:
https://docs.docker.com/go/buildx/
“docker build”只需要1个参数。
参见“docker build—help”。

用法:docker build [OPTIONS] PATH | URL | -

从Dockerfile构建镜像

运行容器

docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080 ruoyi-admin:v1.0
**报错:**因为虚拟机之前就安装过tomcat,所用对产生端口冲突
解决:
端口冲突,关闭Tomcatsystemctl stop tomcat
如果设置了自启,关闭自启systemctl disable tomcat
报错:Error response from daemon: pull access denied for zking-admin, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
**报错原因:**镜像没加版本号

查看后端日志,因为是在容器里面,所用先进容器,然后进入cd /home/ruoyi/logs
sys-error.log(错误日志) sys-info.log(运行日志) sys-user.log(用户日志)

nginx

创建目录
mkdir -p /data/nginx/{conf,html}
上传nginx.conf至/data/nginx/conf文件夹中
nginx.conf文件修改解释
在这里插入图片描述
运行启动容器

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

跟换目录
cd /data/nginx/html
上传dist.zip文件
rz dist.zip
解压
unzip dist.zip
验证
浏览器:IP地址
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【uC/OS-III篇】uC/OS-III 创建第一个任务(For STM32)

uC/OS-III 创建第一个任务(For STM32) 日期:2024-3-30 23:55,结尾总结了今天学习的一些小收获 本博客对应的项目源码工程 源码项目工程 1. 首先定义错误码变量 // 用于使用uC/OS函数时返回错误码 OS_ERR err; 2. 定义任务控制…

非NVIDIA平台下的CUDA的替代方案OpenCL,第一步如何获取PlatformInfo、DeviceInfo

非NVIDIA平台下的CUDA的替代方案OpenCL,第一步如何获取PlatformInfo、DeviceInfo 介绍 当谈到高性能计算,NVIDIA的CUDA框架无疑是一个强大的工具。OpenC(Open Computing Language)是一个更为通用的解决方案,或者你使用…

MySQL面试必备一之索引

本文首发于公众号:Hunter后端 原文链接:MySQL面试必备一之索引 在面试过程中,会有一些关于 MySQL 索引相关的问题,以下总结了一些: MySQL 的数据存储使用的是什么索引结构B 树的结构是什么样子什么是复合索引、聚簇索…

SVFormer: Semi-supervised Video Transformer for Action Recognition

标题:SVFormer:用于动作识别的半监督视频Transformer 原文链接:https://doi.org/10.48550/arXiv.2211.13222 源码链接:GitHub - ChenHsing/SVFormer 发表:CVPR 摘要 半监督动作识别是一项具有挑战性但至关重要的任…

2024年道路运输企业安全生产管理人员证模拟考试题库及道路运输企业安全生产管理人员理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员证模拟考试题库及道路运输企业安全生产管理人员理论考试试题是由安全生产模拟考试一点通提供,道路运输企业安全生产管理人员证模拟考试题库是根据道路运输企业安全生产…

day58 动态规划part15

392. 判断子序列 简单 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde&q…

通天星CMSV6 车载定位监控平台 任意文件上传漏洞复现(XVE-2023-23454)

0x01 产品简介 通天星CMSV6车载定位监控平台拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队,专注于为定位、无线视频终端产品提供平台服务,通天星CMSV6产品覆盖车载录像机、单兵录像机、网络监控摄像机、行驶记录仪等产品的视频综合平台。 0x02 漏洞概述 …

汇编语言第四版-王爽第2章 寄存器

二进制左移四位,相当于四进制左移一位。 debug命令实操,win11不能启动,需要配置文件 Windows64位系统进入debug模式_window10系统64位怎么使用debugger-CSDN博客

DeepL Pro3.1 下载地址及安装教程

DeepL Pro是DeepL公司推出的专业翻译服务。DeepL是一家专注于机器翻译和自然语言处理技术的公司,其翻译引擎被认为在质量和准确性方面表现优秀.DeepL Pro提供了一系列高级功能和服务,以满足专业用户的翻译需求。其中包括: 高质量翻译&#xf…

vue3 视频播放功能整体复盘梳理

回顾工作中对视频的处理,让工作中处理的问题的经验固化成成果,不仅仅是完成任务,还能解答任务的知识点。 遇到的问题 1、如何隐藏下载按钮? video 标签中的controlslist属性是可以用来控制播放器上空间的显示,在原来默…

MySQL数据库高阶语句②

目录 一.子查询与多表查询 1.子查询 2.update子查询 3.多表查询 4.delete子查询 5.exists关键字也用于子查询 6.结果集 二.MySQL视图 1.定义 2.作用场景 3.视图与表的区别与联系 (1)区别 ①视图是已经编译好的sql语句。而表不是 ②视图没有…

unity 打包安卓错误汇集

Failed to find target with hash string "android-34’ in: D:Pr 他说找不到sdk34level的我用as打开后卸载又重装,最后解决了 我放到Plugins/Android/下面的Java代码没有被编译 这个不知道为什么。我故意把代码写的有问题,会报错那种&#xff…

linux自定义命令

文章目录 1、自定义命令介绍2、自定义命令步骤 (centos7)2.1 新建隐藏目录存放自定义命令脚本文件2.2 将新建的目录配置环境变量2.3 取别名的方式简化已有命令2.4 编写自定义命令脚本 1、自定义命令介绍 不管是linux系统还是windows系统都支持自定义命令,windows端…

MIPI CSI-2 Low Level Protocol解读

一、Low Level Protocol介绍 LLP 是一种面向字节的基于数据包的协议,支持使用短数据包和长数据包格式传输任意数据。为简单起见,本节中的所有示例均为单通道配置。 LLP特性: 传输任意数据(与有效载荷无关) 8 位字大…

代码随想录第二十五天 | 回溯算法P2 | ● 216● 17

216.组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出…

解决AD使用交互式BOM插件时,插入make点导致显示异常的问题

记得上次写了一篇关于使用这个插件时出现这个问题的解决方法,具体可查看:AD使用交互式BOM插件时应该注意到的一个问题_ad的bom插件-CSDN博客 当时的解决办法就是删除后再运行脚本生成,这些天经过多次实验,发现是当时那个封装有问…

健身房预约管理系统(源码+文档)

健身房预约管理系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能:项目截图客户端首页我的预约登录教练预约时间我的注册页个人资料课程预约课程预约 管理端订单管理团课管理教练管理分类管理用户管理 文件包含内容 1、搭建…

vulnhub靶场之driftingblues-4

一.环境搭建 1.靶场描述 get flags difficulty: easy about vm: tested and exported from virtualbox. dhcp and nested vtx/amdv enabled. you can contact me by email for troubleshooting or questions. This works better with VirtualBox rather than VMware. 2.靶场…

Segger Embedded Studio IDE使用体验——默认的Section和Linker的设置

Segger Embedded Studio IDE使用体验之一——默认的Section和Linker的设置 一、简介二、操作2.1 编译后代码分析2.1.1 符号浏览器2.1.2 读取elf文件和map文件 2.2 调试2.2.1 查看变量2.2.2 设置供电 2.3 运行环境设置2.3.1 编译器2.3.2 汇编器2.3.3 包含其他文件2.3.4 .bss和.d…

【MATLAB源码-第24期】基于matlab的水声通信中海洋噪声的建模仿真,对比不同风速的影响。

操作环境: MATLAB 2022a 1、算法描述 水声通信: 水声通信是一种利用水中传播声波的方式进行信息传递的技术。它在水下环境中被广泛应用,特别是在海洋科学研究、海洋资源勘探、水下军事通信等领域。 1. **传输媒介**:水声通信利…