若依前后端分离项目docker部署

若依前后端分离项目部署

1.环境准备

1.centos 7

2.docker

3.mysql5.x 8.x

4.redis

5.nginx

2.拉取代码

前往Gitee下载页面(https://gitee.com/y_project/RuoYi-Vue (opens new window))下载解压到工作目录

3.本地运行系统

3.1 后端

1.下载代码到本地后,解压完成,用idea打开项目
若依前后端分离项目docker部署_第1张图片
2.创建数据库:ry-vue
若依前后端分离项目docker部署_第2张图片
3.在创建好数据库后,运行以下两个sql文件生成数据表(quartz.sql、ry_20220814.sql)
若依前后端分离项目docker部署_第3张图片

4.更改数据库配置

若依前后端分离项目docker部署_第4张图片

5.更改redis配置

若依前后端分离项目docker部署_第5张图片

6.启动项目成功就OK了

若依前后端分离项目docker部署_第6张图片

若依前后端分离项目docker部署_第7张图片

7.打包

若依前后端分离项目docker部署_第8张图片

双击package.bat,项目就自己进行打包了,jar存放位置如下图:

若依前后端分离项目docker部署_第9张图片

3.2 前端

运行启动

1.从git下载下来的代码包含后端、前端一起,前端项目名:ruoyi-ui

若依前后端分离项目docker部署_第10张图片

2.使用开发工具打开项目(我这里使用的是vs code)

若依前后端分离项目docker部署_第11张图片

3.使用命令安装工程所需要的依赖

# 1.进入项目目录
cd ruoyi-ui
# 2.安装依赖 (可以使用npm install 但是网络不好时会很慢,所以直接指定源下载)
npm install --registry=https://registry.npmmirror.com
# 3.启动工程
npm run dev

若依前后端分离项目docker部署_第12张图片

4.访问:http://localhost:80/,并且正常进行登录系统,说明本地服务启动成功!

若依前后端分离项目docker部署_第13张图片

打包

npm run build:prod

在这里插入图片描述

构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js***.cssindex.html 等静态文件。

若依前后端分离项目docker部署_第14张图片

4.云部署

4.1 在linux上安装docker

由于我已经安装过docker了,所以不太方便从头安装,推荐如下博客,自己也可以百度

参考csdn:https://blog.csdn.net/m0_59196543/article/details/124749175

4.2 在docker中创建mysql容器

参考:https://blog.csdn.net/mengxiang0320/article/details/126368785?spm=1001.2014.3001.5501

4.3 在docker中创建redis容器

# 1.搜索redis镜像
docker search redis
# 2.下载镜像
docker pull redis 
# 启动容器
docker run -d -p 6379:6379 --name redis-01 redis

4.4 在docker中创建nginx容器

1.拉取镜像

docker pull nginx

2.创建本地文件夹(与nginx容器做卷挂载)

若依前后端分离项目docker部署_第15张图片

3.启动nginx容器

docker run -d -p 80:80 --name rynginx \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/log:/var/log/nginx \
nginx

4.把前端工程打包好的dist文件夹拷贝到/mydata/nginx/html目录下

在这里插入图片描述

5.编辑nginx.conf配置文件

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  xxx.xxx.xxx.xxx # 你的IP地址
		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://xxx.xxx.xxx.xxx:8080/; # 你的IP地址
		}

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

这样,nginx就配置OK了!

4.5在docker中使用Dockerfile创建镜像

1.新建Dockerfile文件

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" ]

2.创建一个文件夹docker,把后端打包好的jar包和Dockerfile文件拷贝到该目录中

若依前后端分离项目docker部署_第16张图片

3.创建镜像

docker build -t ruo-yi-admin . # 注意后面有个 .

在这里插入图片描述

4.6 使用自己的镜像启动容器

1.启动容器

docker run -d -p 8080:8080 --name ruoyi-admin ruo-yi-admin
# 使用 docker ps -a 查看容器是否正常运行

2.访问路径=> ip地址:80

若依前后端分离项目docker部署_第17张图片

出现登录界面,并且能正常登录,说明我们的项目就部署成功了!

你可能感兴趣的:(docker,docker,容器,运维)