当前位置: 首页 > news >正文

服务器中使用Docker部署前端项目

一、准备前端项目

在项目终端使用命令打包

npm run build

然后在你的项目文件夹里面会有一个dist文件夹,这就是前端项目打包的产物。

二、上传dist到服务器

首先在服务器中使用命令创建frontend文件夹,后续关于前端打包的所有文件都放到这里面。

mkdir frontend

然后将dist文件夹上传到服务器,我这里选择scp命令上传

# 格式:scp -r 本地文件路径 服务器用户@服务器IP:服务器目标路径
# 1. 上传 dist 文件夹(-r 表示递归上传文件夹)
scp -r /本地项目路径/dist  root@你的服务器IP:/path/to/frontend/# 2. 上传 Dockerfile(单个文件无需 -r)
scp /本地项目路径/Dockerfile  root@你的服务器IP:/path/to/frontend/示例
scp -r F:\大三学年(下学期)\教室预约系统\后台管理端代码\ClassroomReservationSystem\dist root@10.253.9.100:/frontend

命令运行成功后会让你输入服务器的密码,此时输入密码即可上传。

出现下面的界面则是上传成功

三、服务器中使用docker部署前端项目

1、创建 Dockerfile

在项目根目录创建 Dockerfile 文件,内容如下:

# 阶段 1: 构建前端项目
FROM node:16-alpine as build-stage
WORKDIR /app
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制源代码
COPY . .
# 构建生产版本
RUN npm run build# 阶段 2: 部署到 Nginx
FROM nginx:stable-alpine as production-stage
# 从构建阶段复制产物到 Nginx 服务目录
COPY --from=build-stage /app/dist /usr/share/nginx/html
# 复制自定义 Nginx 配置(可选)
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 暴露 80 端口
EXPOSE 80
# 启动 Nginx 服务
CMD ["nginx", "-g", "daemon off;"]

2、在 frontend 目录创建 Nginx 配置文件(含反向代理,对接后端)

在 frontend 目录下新建 nginx.conf(用于配置 Nginx 静态资源路径和接口代理,避免前端请求后端跨域 / 404)

# 进入 frontend 目录(已在该目录可跳过)
cd /frontend# 创建并编辑 nginx.conf
vi nginx.conf

按 i 进入编辑模式,粘贴以下内容(关键修改后端地址 http://10.253.9.100:8080 为你的真实后端地址):

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  localhost;# 1. 托管前端静态资源(指向 dist 目录)location / {root   /usr/share/nginx/html;  # 容器内 dist 文件的存放路径index  index.html index.htm;try_files $uri $uri/ /index.html;  # 解决单页应用(SPA)刷新404问题}# 2. 反向代理:将 /api 开头的请求转发到后端(按需配置,无接口可删除)location /api/ {proxy_pass http://10.253.9.100:8080/;  # 你的后端地址(IP+端口)proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}
}

3、 构建 Docker 镜像

docker build -t your-project-name:latest .
  • your-project-name 是你的镜像名称
  • latest 是标签(版本号)

示例:

docker build -t my-frontend:v1 .

4、运行 Docker 容器

使用以下命令启动容器:

docker run -d -p 8080:80 --name your-container-name your-project-name:latest
  • -d:后台运行
  • -p 8080:80:将容器的 80 端口映射到主机的 8080 端口
  • --name:指定容器名称

示例:

docker run -d -p 3000:80 --name nginx-frontend my-frontend:v1

5、验证容器是否正常运行

docker ps | grep nginx-frontend

出现以下界面则说明容器正常运行

  • 此时在本地浏览器访问 http://服务器IP:3000,就能看到前端页面了!
http://www.dtcms.com/a/426754.html

相关文章:

  • mysql之二进制日志
  • 【完整源码+数据集+部署教程】染色体图像分割系统: yolov8-seg-KernelWarehouse
  • Docker MySQL 使用全流程
  • Visual Studio主题、字体、快捷键、开发环境设置,自用
  • 火山 19 混音伴音 接口
  • Bean精细化控制属性序列化反序列化
  • 前端权限模型——RBAC
  • 杭州知名网站建设公司电商网站建设好么
  • 不忘初心网站建设做网站的工具
  • VSCode实现字符串粘贴转义复制反转义
  • 第2章 三个小工具的编写(2)
  • 【DeepResearch】langgraph自主迭代研究能力的 AI 代理及分析
  • 专题:2025医药行业数智赋能与AI应用全景研究报告|附200+份报告PDF、数据仪表盘汇总下载
  • Alibaba Cloud Linux 3 +Docker 部署 ThinkPHP6 (宝塔环境)-问题篇
  • LeetCode 刷题【93. 复原 IP 地址】
  • Python类和对象----实例属性,类属性(这是我理解类和对象最透彻的一次!!)
  • 文档解析Logics-Parsing
  • 网站设计报价.doc网页端
  • IDEA中Add New Configuration找不到Tomcat
  • 学习笔记092——Windows如何将 jar 包启动设置成系统服务
  • React前端框架有哪些?
  • 文昌市建设局网站无锡工厂网站建设
  • 龙岗网站建设-信科网络深圳房地产论坛家在深圳
  • Ceph 分布式存储学习笔记(三):块存储和对象存储管理
  • Ubuntu22.4安装Samba服务器
  • 服务器安装Java与nginx与nacos
  • Navicat导入Excel至瀚高数据库
  • 网站的制作与调试微网站服务合同
  • JavaScript调试工具有哪些?常见问题与常用调试工具推荐
  • 网站项目建设策划方案超级外链发布