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

前端用docker部署

1、环境检查

首先需要确认服务器上是否已经安装docker了。
在服务器上执行docker -v
在这里插入图片描述
显示对应的版本号说明已经安装好了docker

2、部署

使用Docker部署若依项目的前端服务,我们最终实现的是:启动一个镜像,我们的整个前端就启动了,想要修改nginx配置,直接挂载下目录修改即可。

2.1传统部署方法

如果我们不用docker部署,我们会怎样部署前端项目呢?

  • 项目打成dist文件
  • 上传服务器
  • 下载nginx(docker下载或者压缩包安装)
  • 配置nginx的端口转发

感觉好麻烦,这里将使用docker进行部署,打成一个镜像包:

2.2制作镜像

我们的前端项目是利用nginx启动的,所以我们先将前端这个项目打包成dist文件,上传到服务器,然后编写dockerfile以及nginx配置文件,将dist文件和nginx配置文件copy到容器内部。最后打包测试。

2.1.1打包ruoyi-ui文件

下载若依项目,然后进入到ruoyi-ui这个工程,根据文档使用 npm run build:prod打包项目
在这里插入图片描述
这里最终会出现一个dist文件
在这里插入图片描述

2.1.2服务器上创建目录

mkdir /ruoyi/docker-nginx -p
相对应的目录如下:

├── default.conf #nginx配置
├── dist # ruoyi-ui打包文件
└── Dockerfile
2.1.3Nginx配置文件编写

使用vim创建一个 default.conf 文件
nginx配置文件:主要配置域名和端口转发,点我查看文档,内容如下:

server {
    listen       80;
    server_name  localhost;

    location / {
            root   /data/dist;
            index  index.html index.htm;
                 try_files $uri $uri/ /index.html;
    }

   location /prod-api/ {
      proxy_pass  http://127.0.0.1:8080/; # 转发规则 修改你服务器上的后端地址
      proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

2.1.4Dockerfile文件编写
FROM nginx
MAINTAINER xiuyi/kid0510z@163.com
ENV RUN_USER nginx
ENV RUN_GROUP nginx
ENV DATA_DIR /data/dist
ENV LOG_DIR /data/log/nginx
RUN mkdir /data/log/nginx -p
RUN chown nginx.nginx -R /data/log/nginx
ADD dist /data/dist
ADD default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"

3.构建测试

docker build -t ruoyi-vue .
docker run -p 8088:80 --name ruoyi-vue ruoyi-vue

4.验证

访问ip+8088,如下表示成功:
在这里插入图片描述

5.完结

注意:如果使用的是docker部署的nginx ,应该先把nginx 进行关闭!!!!!
在这里插入图片描述


http://www.kler.cn/a/380706.html

相关文章:

  • 第十八课 Vue中的JS组件模板和标签组件模板
  • 新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大
  • 如何学习Java“高并发”,并在项目中实际应用?
  • 使用 Elasticsearch 进行语义搜索
  • 华为OD机试 - 无重复字符的元素长度乘积的最大值(Python/JS/C/C++ 2024 C卷 100分)
  • 2025生物发酵展(济南)为生物制造产业注入新活力共谱行业新篇章
  • 总是忘记CSS中的transform 和transition的区别
  • 楼梯区域分割系统:Web效果惊艳
  • 【图书管理与推荐系统】Python+Django网页界面+协同过滤推荐算法+网站系统
  • nginx cors配置
  • 【驱动】地平线X3交叉编译工具搭建、源码下载
  • 基于航片的玉米异常情况识别赛题正在报名中 | CCF BDCI进行时
  • element-plus按需引入报错Components is not a function
  • 什么是AOP面向切面编程?怎么简单理解?
  • npm入门教程11:npm私有包和模块
  • 基于Spring Boot的志愿服务管理系统设计与实现,LW+源码+讲解
  • Chrome 130 版本开发者工具(DevTools)更新内容
  • Python学习笔记-生成器的应用与原理
  • CentOS 7 安装 ntp,自动校准系统时间
  • three.js 智慧城市扫光效果
  • Linux系统基础-多线程超详细讲解(5)_单例模式与线程池
  • Android 网易游戏面经
  • 快来了解一下服务器虚拟化!!!
  • FlowDroid 分析最新Android 构建 APK出错
  • XLSTM+transformer时间序列预测代码
  • Java学习—反射机制:解锁代码的无限可能