网站首页 > 精选教程 正文
docker部署vuejs
vuejs项目上线主要有两个步骤:编译(npm run build获取dist文件夹)+ nginx静态文件服务。使用docker部署vuejs目前来说主要有两种方式:一、开发机器编译得到dist文件夹后将文件夹复制到docker nginx服务器,二、将编译和nginx静态服务一并在docker容器中实现。
编译和nginx服务分离
第一种方式有利亦有弊,好处是这样构建的docker镜像相对轻量,启动速度快。弊端是如果将项目分享给他人,接手的人需要搭建node+npm环境(当然熟悉前端的同学觉得这环境的安装再简单不过了)
docker中实现编译+服务
这篇文章将针对第二种docker部署vuejs方式进行讲解,学会了第二种方式,第一种也就是手到擒拿了!
- 创建vuejs示例项目
vue create docker-vue
这个项目创建过程全程默认即可
- 配置nginx
docker-vue根目录创建nginx文件夹
- nginx/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 10240;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- nginx/vhost/docker-vue.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 创建Dockerfile
docker-vue根目录创建Dockerfile,内容如下
FROM alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk add nodejs \
&& apk add npm \
&& apk add nginx
WORKDIR /etc/nginx
COPY ./nginx/nginx.conf .
COPY ./nginx/vhost ./conf.d
WORKDIR /var/www/html
COPY ./public ./public
COPY ./src ./src
COPY ./babel.config.js .
COPY ./package.json .
CMD npm config set registry https://registry.npm.taobao.org \
&& chmod -R 777 . \
&& NODE_ENV=build npm install \
&& npm run build \
&& echo "docker-vue打包完成" \
&& nginx -g "daemon off;"
- 构建docker-vue镜像
在Dockerfile所在目录打开命令行执行
docker build -t docker-vue:v1 .
docker run -p 80:80 --name docker-vue docker-vue:v1
效果
访问
http://localhost
- 上一篇: VUE3前端开发入门系列教程 vuejs前端开发实战
- 下一篇: Vue中会出现哪些跨域问题?如何解决
猜你喜欢
- 2024-10-08 Vue 项目部署到服务器的问题解决方法
- 2024-10-08 一个域名部署多个VUE前端项目 一个域名配置多个应用服务器
- 2024-10-08 强烈推荐一个非常好的 NGINX WEB UI 可视化用户界面
- 2024-10-08 Vue中会出现哪些跨域问题?如何解决
- 2024-10-08 VUE3前端开发入门系列教程 vuejs前端开发实战
- 2024-10-08 springboot+vue+nginx简单实现前后端分离
- 2024-10-08 前后端分离项目vue前端生产环境下结合NGINX部署
- 2024-10-08 踩坑集锦之vue vue cube
- 2024-10-08 Vue、Nuxt服务端渲染、NodeJS全栈项目
- 2024-10-08 vue项目如何打包部署并用Nginx做代理访问
你 发表评论:
欢迎- 最近发表
-
- java 服务之间调用(rpc)(java实现服务器)
- Java机器学习库(Java ML)(二、聚类)
- 「Java库」如何使用优秀的加密库Jasypt来保护你的敏感信息?
- GitHub精选 | 轻量级Android和Java日志库
- Java面试官:MySQL binlog 有什么作用?主从延迟的了解么?
- Excel函数核武器库:50个高频场景公式——第二弹
- Excel函数核武器库:50个高频场景公式——第一弹
- Spring Cache高性能缓存库 - Caffeine简介
- Java通过Kafka Streams库来实现数据流处理
- 一连问了好几个大佬,竟然都不知道Redis为什么默认16个数据库?
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)