【Docker】让前端也能用Docker部署,以ruoyi(若依)为例,极简部署流程

首先感谢掘金大佬的文章
本文主要以ruoyi为例,让开发者极简体验vue项目docker化,主要流程如下:

  1. 通过nginx代理,让前端接口的请求转发到nodeserver容器上 实现nginx代理转发
  2. 以ruoyi为例,打包ruoyi项目,生成dist文件夹,编写Dockerfile文件,通过docker打包生成一个前端镜像,然后通过这个前端镜像实例化启动一个前端容器 实现前端项目部署。

Docker基本概念如下:

镜像(Image): Docker 镜像是一个只读的模板,可以理解为是一种存储形式,可以理解为数据或应用的副本。

容器(Container): 容器是镜像的运行实例,可以被启动、停止、删除 , 是运行在虚拟机上的进程。

仓库(Repository): 用来存储和分发 Docker 镜像的。

主要就是就是,通过Dockerfile生成镜像或者从Dockerhub中获取镜像 然后去创建容器,最后让程序跑在容器上。

Ruoyi代码下载

  1. RuoYi-Vue
    在这里插入图片描述

Docker安装

下载并安装 Docker Desktop
操作完可通过 docker --version验证成功与否

在这里插入图片描述

Docker Desktop 国内镜像源设置

Docker换源加速(更换镜像源)详细教程(2025.2最新可用镜像,全网最详细)
截止2025.2.6,下列镜像源均可用。(基于能否成功拉取hello-world进行测试)

DockerHub可用镜像源汇总:
docker.m.daocloud.io
docker.imgdb.de
docker-0.unsee.tech
docker.hlmirror.com
docker.1ms.run
func.ink
lispy.org
docker.xiaogenban1993.com
这里要注意,如果国内镜像源不设置,很可能导致各种Docker hub下载失败的情形。

在这里插入图片描述

  "registry-mirrors": [
    "https://docker.imgdb.de",
    "https://registry.hub.docker.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]

尝试nginx运行

这里先尝试一下 nginx服务器的docker化运行:

docker run -d -p 80:80 --name webserver nginx

在这里插入图片描述
输入http://localhost/,如果看到下图,就说明成功了
在这里插入图片描述
暂停可通过

### 如何在 Docker部署 RuoYi 项目的前端部分 要在 Docker 中成功部署 RuoYi前端部分,可以通过构建自定义的 Docker 镜像来实现。以下是具体的说明: #### 构建过程概述 为了完成此操作,需要准备一个 `Dockerfile` 文件并将其放置于 `ruoyi-ui` 项目根目录下。该文件的内容应基于 Node.js 和 Nginx 来执行以下任务: 1. 使用 Node.js 环境安装依赖项并运行生产环境下的打包命令。 2. 将生成的静态资源复制到 Nginx 容器中以便提供服务。 具体步骤如下所示[^3]: ```dockerfile FROM node:16 AS frontend-builder WORKDIR /build-app COPY . . RUN npm install RUN npm run build:prod # package.json 配置中的命令用于运行打包 FROM nginx:1.23 EXPOSE 80 WORKDIR /app COPY nginx.conf /etc/nginx/nginx.conf # 覆盖默认的 Nginx 配置文件 RUN rm -rf /usr/share/nginx/html # 清理默认 HTML 文件夹以防干扰 RUN mkdir /usr/share/nginx/html COPY --from=frontend-builder /build-app/dist /usr/share/nginx/html # 复制打包后的静态文件至目标位置 CMD ["nginx", "-g", "daemon off;"] ``` 上述脚本分为两个阶段: - **第一阶段** (`frontend-builder`) 利用了官方发布的 Node.js 映像作为基础映像,在其中完成了源码拷贝、依赖安装以及最终产物编译的工作; - **第二阶段** 则切换到了轻量级 Web 服务器——Nginx 上面,并把之前产生的成果转移过去供后续访问调用之需。 #### 创建与启动容器 当准备好合适的 `Dockerfile` 后,则可按照常规流程创建镜像并启动相应的容器: ```bash docker build -f ./path/to/Dockerfile -t ruoyi-frontend:latest . docker run -d -p 8080:80 --name ruoyi-front-container ruoyi-frontend:latest ``` 这里 `-f` 参数指定了所使用的特定路径下的 `Dockerfile` ,而标签名设为 `ruoyi-frontend:latest` 。之后再利用 `docker run` 命令以后台模式开启新进程的同时绑定主机上的某个端口号(此处假设为 8080),从而允许外部设备通过浏览器等方式连接查看效果。 另外值得注意的是,如果希望进一步增强安全性或者便于管理维护的话,还可以考虑引入私有的仓库机制存储这些定制化组件。如借助前面提到过的 registry 前端工具配合基本身份验证措施共同作用即可达成目的[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值