【若依前后端分离版,docker部署到服务器流程详解】
前言
最近用ruoyi前后端分离版做了一个项目,前端用的vue3,后端用的springboot3、JDK17,数据库用的postgresql。
首先,在服务器上安装必要的中间件,我业务主要需要安装redis、pg、minio三个中间件【中间件安装部署不在此赘述】。
现在要部署到服务器,以下是部署的详细过程,希望对读者能有帮助。
1.后端发布
参考:https://blog.csdn.net/yohann1991/article/details/150446958?spm=1001.2014.3001.5502
注意点:
-
打包的时候,如下打包方式没有报错,其他的方式会报错,原因不详。

-
在admin模块下创建一个Dockerfile文件,内容如下:

FROM openjdk:17-alpine# 安装字体依赖库 RUN apk update && apk add --no-cache \fontconfig \freetype \ttf-dejavuLABEL maintainer="yuanhong"COPY target/*.jar app.jarENTRYPOINT ["java","-jar","/app.jar"]一定要安装字体依赖库,否则项目首页无法生成验证码。
后续的其他步骤参照这个博文:https://blog.csdn.net/yohann1991/article/details/150446958?spm=1001.2014.3001.5502
2.前端发布
-
打包,执行npm run build:prod

生成dist

-
将dist文件夹上传至服务器特定位置
-
拉取最新nginx
docker pull nginx:latest -
创建宿主机挂载目录
mkdir -p /home/tool/nginx/{conf,html,logs} -
启动临时容器
docker run --name nginx-temp -d -p 80:80 nginx:latest -
复制配置文件
# 复制主配置文件 docker cp nginx-temp:/etc/nginx/nginx.conf /home/tool/nginx/conf/ # 复制默认服务器块配置 docker cp nginx-temp:/etc/nginx/conf.d /home/tool/nginx/ # 复制默认网页文件 docker cp nginx-temp:/usr/share/nginx/html/ /home/tool/nginx/ -
停止并移除临时容器
docker stop nginx-temp docker rm nginx-temp -
运行Nginx容器并挂载目录
docker run -d \--name nginx-web \-p 80:80 \-v /home/tool/nginx/html:/usr/share/nginx/html \-v /home/tool/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \-v /home/tool/nginx/conf.d:/etc/nginx/conf.d \-v /home/tool/nginx/logs:/var/log/nginx \nginx:latest
-
-
重要文件挂载说明
宿主机目录 容器内目录 作用与说明 /home/tool/nginx/html/usr/share/nginx/html存放网站静态资源(HTML、CSS、JS等)。修改宿主机文件即可更新网站内容。 /home/tool/nginx/conf/nginx.conf/etc/nginx/nginx.confNginx的主配置文件。建议挂载为只读( ro)以保护配置-5。/home/tool/nginx/conf.d/etc/nginx/conf.d存放自定义的服务器块(server block)配置文件,通常用于配置虚拟主机。 /home/tool/nginx/logs/var/log/nginx存放Nginx的访问日志(access.log)和错误日志(error.log),方便在宿主机上查看和分析。
2. 将dist文件夹放置
到/home/tool/nginx/html下

3. 修改nginx的配置文件
/home/tool/nginx/conf.d下

4. 重启一下nginx
前端访问地址10.90.5.145:80

