一、环境配置与工具

1.1 环境配置

这是docker部署使用的版本

	JDK   ==》1.8 (推荐1.8版本)
	Mysql ==》5.7.0 (推荐5.7.37版本)--我也是以5.7.37版本为例
	Redis ==》latest版本
	nginx ==》latest版本

1.2 工具使用

部署过程中使用的一些工具,这里不在讲述centos如何安装docker。请自行参考官网。

1. 一台阿里云服务器  ===》 centos7.3镜像
2. 使用 Xshell 连接服务器
3. 使用 Xftp 上传文件

二、nginx的安装与前端部署

2.1 若依前端部署

1. 首先在vscode新建一个终端
2. 使用 npm install 命令安装依赖
3. 使用 npm run build:prod 命令编译项目
4. 在项目中会生成一个 dist 的一个文件夹

在这里插入图片描述

2.2 nginx安装与文件映射

  1. 首先使用 Xshell工具 连接我们的一个服务器公网ip地址,并且创建两个连接,方便后面调试。

在这里插入图片描述

  1. 使用“01” 这个连接,并且使用命令 cd / 进入根目录
    在这里插入图片描述

  2. 创建我们需要映射的文件夹 mkdir -p /mydata/nginx/conf
    特别注意:这里的 /mydata/nginx/conf 目录是自己创建的。

在这里插入图片描述

  1. 在/mydata/nginx/conf目录下,使用 Xftp工具 帮我们可视化创建 nginx.conf 文件
    在这里插入图片描述

  2. 将下列内容复制到 nginx.conf 文件中
    特别注意:需要修改两处地方:下列内容中的 ip地址 换成自己服务器的公网ip地址
    在这里插入图片描述
    附上代码:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  121.89.218.41
		charset utf-8;

	location / {
		root  /usr/share/nginx/html/dist;
		try_files $uri $uri/ /index.html;
		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://121.89.218.41:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        	location = /50x.html {
           	root   html;
        }
    }
	include /etc/nginx/conf.d/*.conf;
}

6.同理创建 /mydata/nginx/html 目录 ,使用mkdir -p /mydata/nginx/html命令

在这里插入图片描述
7.最后可使用Xftp工具将 vscode 编译好的 dist 目录上传至/mydata/nginx/html下
注意:这里是将 整个dist目录上传

在这里插入图片描述

8.准备工作都弄好了,就可以开始我们的nginx镜像拉取和文件映射了

8.1 首先拉取镜像 docker pull nginx,使用docker images可以查看我们的镜像
在这里插入图片描述

8.2 启动nginx 和映射文件

docker run -d -p 80:80 --name ruo-yi-nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx 

在这里插入图片描述
8.3 使用 docker ps -a 可以查看我们的正在运行的镜像

在这里插入图片描述
特别注意: 需要在阿里云控制台的 安全组 中暴露我们的80端口,不然就会GG

最后在我们的浏览器中访问 121.89.218.41:80 这里的ip地址注意更换成自己的公网ip地址

出现若依登陆界面则部署成功,否则就检查映射文件路径是否正确,或者修改 nginx.conf 配置文件

三、mysql的安装与配置

注:这里mysql的映射会比较麻烦,请仔细阅读。

1、首先创建我们的映射文件夹/mydata/mysql/conf 和/mydata/mysql/data

	mkdir -p /mydata/mysql/conf
	mkdir -p /mydata/mysql/data

在这里插入图片描述

2、我们先拉取镜像,使用 指定版本 5.7.37, 注意不要少了 冒号。且使用docker images查看镜像。

docker pull mysql:5.7.37

在这里插入图片描述
3、首先运行一个简单的mysql,密码是123456,注意它的id。

 docker run -d -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37

在这里插入图片描述

3、并将它的配置文件复制到主机。注意这里的 44d55313fe42是容器id

docker cp 44d55313fe42:/etc/mysql /mydata/mysql/conf

在这里插入图片描述
可以使用Xftp查看是否成功复制

在这里插入图片描述
4、有了配置文件之后,删掉我们创建的这个简单mysql

  docker stop 44d55313fe42
  docker rm 44d55313fe42

在这里插入图片描述
可以看到,容器已经被删除了

5、最后我们可以使用命令运行和映射mysql了,注意去阿里云安全组暴露3306端口!!!

docker run -d -p 3306:3306 --name ruo-yi-mysql -v /mydata/mysql/conf/mysql:/etc/mysql -v /mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37

在这里插入图片描述
6、使用navicat测试连接

在这里插入图片描述

7、我们新建一个test数据库,看看在主机中是否同步。

在这里插入图片描述
在这里插入图片描述
我们发现可以使用远程连接了。

8、创建若依的数据库,名称为 ryadmin。并且导入sql
在这里插入图片描述

四、redis的安装与配置

注:我们同样需要一个配置文件,redis的配置文件可以从官网下载

附上链接:http://download.redis.io/redis-stable/redis.conf

不能跳转的,请复制链接到浏览器地址打开。

1、我们创建我们需要映射的文件夹/mydata/redis/conf和/mydata/redis/data

mkdir -p /mydata/redis/conf
mkdir -p /mydata/redis/data

2、上传redis.conf之前,需要对它进行修改

2.1、首先我们打开文件,查找bind 127.0.0.1

在这里插入图片描述
2.2、修改它的ip为 0.0.0.0

在这里插入图片描述
2.3、配置我们的密码

requirepass 123456

在这里插入图片描述

3、使用Xftp将redis.conf文件上传至/mydata/redis/conf目录

在这里插入图片描述
4、最后运行和映射我们的redis,注意去阿里云的安全组暴露6379端口!!!!

docker pull redis

docker run -d -p 6379:6379 -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /mydata/redis/data:/data --name ruo-yi-redis redis redis-server /usr/local/etc/redis/redis.conf

5、可以使用RedisDesktopManager验证我们的连接。

在这里插入图片描述

五、springboot打包与Dockerfile文件编写

1、首先需要修改application.yml文件中的Redis配置

在这里插入图片描述
2、再修改application-druid的mysql配置,注意IP地址需要填公网ip,不能填localhost。

在这里插入图片描述
3、使用maven打包

在这里插入图片描述
4、编写Dockerfile文件,文件名字必须叫Dockerfile,80%的项目都这么做。

在这里插入图片描述
附上代码:

FROM java:8
VOLUME /tmp
ADD *.jar /app.jar
EXPOSE 8080

RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

5、最后将我们的jar包和Dockerfile文件都上传至/mydata/docker目录下

mkdir -p /mydata/docker

在这里插入图片描述
在这里插入图片描述
6、我们cd进入/mydata/docker目录下

使用docker build -t ruo-yi-admin .      编译项目

特别注意:这里有一个点,漏了会报错

在这里插入图片描述

7、再运行我们打包好的这个容器镜像

docker run -d -p 8080:8080 --name ruoyi-admin ruo-yi-admin

docker ps -a

7.1、查看ruo-yi-admin运行的ID
在这里插入图片描述
7.2、使用命令查看启动日志,出现如下图,说明启动成功

docker logs -f 153afa854100

在这里插入图片描述
7.3、最后最后!!如果报错可以根据 启动日志来判断是哪一个环境出现了问题。

  • 比如mysql是否密码、IP地址是否配置正确,数据库是否建立。
  • redis的IP地址是否正确,redis.conf的文件是否有修改

8、再次访问 121.89.218.41:80
在这里插入图片描述
8.1、输入验证码,点击登陆,这样前后端都部署成功了

在这里插入图片描述

Logo

快速构建 Web 应用程序

更多推荐