团队vue基础镜像选择思考
前端镜像可以考虑使用nginx或者openresty;
| 镜像 | 大小 | 说明 |
|---|---|---|
| nginx:1.20.2-alpine | 8.41 MB | 最小最新版本 |
| nginx:1.21.4 | 50.95 MB | 最新版本 |
| nginx:stable 1.20.2 | 52.27 MB | 稳定版本 |
| openresty/openresty:1.19.9.1-4-alpine | 33.14 MB | 最小最新版本 |
| openresty/openresty:1.19.9.1-4-alpine-fat | 109.68 MB | 最小最新功能最全版本 |
vue工程
分阶段打包脚本:
FROM node:17.3.0
#FROM node:latest
WORKDIR /data/cycube/
COPY . /data/cycube/
RUN npm config set registry=https://packages.aliyun.com/61516fe9bdfa1bd1b630ac57/npm/npm-registry/
RUN npm install
RUN npm run build
######################分阶段构建######################
FROM registry.cn-shanghai.aliyuncs.com/cycube/app:nginx-1.20.2-alpine
EXPOSE 80
COPY --from=0 /data/cycube/dist/ /usr/share/nginx/html/
COPY --from=0 /data/cycube/nginx.conf /etc/nginx/conf.d/default.conf
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]
运行成功;
openresty
FROM openresty/openresty:1.19.9.1-4-alpine
EXPOSE 80
COPY ./dist/ /usr/share/nginx/html/
COPY nginx_front.conf /etc/nginx/conf.d/default.conf
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]
配置文件:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html/;
location / {
try_files $uri $uri/ @router;
index index.html;
}
location /test {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, openresty!!!</p>")
}
}
error_page 404 /404.html;
error_page 500 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
error_page 502 =200 @jump_to_error;
location @jump_to_error {
default_type application/json;
return 200 '{"ret":503,"msg":"服务器正在重启,请稍候"}';
}
}
打包,
docker build -t frontrest:v1 -f Dockerfile2resty ./
测试;
docker run --name frontrest:v1 -p 80:80 -d frontrest:v1
lua写的快速接口运行:

正常前端访问:

小结
最终采用openresty作为前端的基础镜像,后续一些短平快的接口实现,直接使用lua搞定;基础镜像大了一部分,但是能力也大大增加了。
因为前端node版本不同,打包结果和耗时比较随机,这里跟前端妹子约定了版本号,后续的开发环境的版本也使用这个 node:17.3.0
参考资料
openresty作为网关
https://blog.csdn.net/Xavider/article/details/103544222
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
团队vue基础镜像选择思考的更多相关文章
- 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...
- React 还是 Vue: 你应该选择哪一个Web前端框架?
学还是要学的,用的多了,也就有更多的认识了,开发中遇到选择的时候也就简单起来了. 本文作者也做了总结: 如果你喜欢用(或希望能够用)模板搭建应用,请使用Vue 如果你喜欢简单和“能用就行”的东西 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十║Vue基础终篇:传值+组件+项目说明
缘起 新的一天又开始啦,大家也应该看到我的标题了,是滴,Vue基础基本就到这里了,咱们回头看看这一路,如果你都看了,并且都会写了,那么现在你就可以自己写一个Demo了,如果再了解一点路由,ajax请求 ...
- python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)
一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...
- vitess基础镜像构建流程Centos
以下列出了构建vitess使用的Centos镜像的简单流程,由于较早基础版本是Centos7.2的,重新构建可以基于最新的Centos版本构建 1.基础镜像拉取 #拉取官方版本 docker pull ...
- [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程 V0.2
之前的[笔记] 基于nvidia/cuda的深度学习基础镜像构建流程已经Out了,以这篇为准. 基于NVidia官方的nvidia/cuda image,构建适用于Deep Learning的基础im ...
- Vue基础(1)
目录 Vue基础 基础 导入 1. 挂载 2. 插值表达式 3. 事件 4. 创建对象 5. v-text和v-html 6. vue的过滤器 7. 属性指令 Vue基础 基础 首先我们要知道Vue是 ...
- 第一篇:Vue基础
Vue基础 渐进式JavaScript框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目 走进Vue 什么是Vue 渐进式JavaScrip ...
- 自动构建自己的ASP.NET Core基础镜像
在开发过程中,我们可以根据自身情况来定制自己的基础镜像,以便加快CI\CD构建速度以及提高开发体验.这里我们就以ASP.NET Core的基础镜像为例来进行讲解. 本次教程代码见开源库:https:/ ...
随机推荐
- Spring Boot对Spring Data JPA的支持
前两篇介绍了Spring Data JPA的基本使用,本篇介绍Spring Boot 对JPA的支持.如下: 1)导入坐标 2)注解配置 其他配置同Spring Data JPA应用之常规CRUD操作 ...
- Golang Sync.WaitGroup 使用及原理
Golang Sync.WaitGroup 使用及原理 使用 func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.A ...
- Prometheus之Dockerfile编写、镜像构建、容器启动
目录 从官方镜像启动:prom/prometheus 官方Dockerfile分析 编写自己的Dockerfile 构建镜像: 启动容器: 从官方镜像启动:prom/prometheus 拉取镜像 $ ...
- Python中特殊函数__str__()
在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据. 案列: 1 class Book: 2 3 def __init__ ...
- Python中类的两种用法
第一种用法是使用类生成实例对象.类作为实例对象的模版,每个实例创建后,都将拥有类的所有属性和方法. 第二种用法是用类将多个函数(方法)打包封装在一起,让类中的方法相互配合.
- 【C#基础知识】C#控制台程序入口函数 Main(string[] args) 参数详解
测试环境vs2019+.net5.0 请看 :https://cloud.tencent.com/developer/article/1507934 本测试环境vs2022+.net6.0 +wind ...
- Could not load file or assembly 'System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
项目升级后提示错误 System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Ve ...
- bower install 报错fatal: unable to access 'https://github.com/angular/bower-angular-touch.git/'类错误解决方法
bower install时出现很多unable to access 'https://github.com/angular/bower-angular-touch.git/'类似的错误, 方法一:( ...
- 关于SQL优化的辟谣
列举一些关于 SQL 语句的谣言,避免一些生瓜蛋子面试的时候被另外一群生瓜蛋子的 SQL 优化宝典给坑了. 以下所有内容都是 SQL Server 中的,其他数据库只能参考和借鉴 一.全表扫描 全表扫 ...
- JZ-029-最小的 K 个数
标题 最小的 K 个数 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题目链接: 最小的 K 个数 代码 import ja ...