前端容器化, 为了能够独立进行部署, 配备 nginx
Dockerfile
这里利用 docker 的 MultiStage 特性,区分打包和生产镜像的 build.
注意顺序,为了利用潜在的 cache 提高打包速度
只把生成的 dist 内容放到 nginx 里面, 并且放入自己的 nginx 配置, 毕竟默认配置不能满足 SPA 项目
FROM node:9.11.1-alpine as build-stage |
nginx 相关配置目录
在项目根目录下放置 nginx 目录
是一些常规配置.
特意开放了 gzip_static, 以备后续前端优化使用.
-nginx
|——sites_enabled
|——–example.com.conf
|–general.conf
|–nginx.conf
nginx.conf
#user www-data; |
general.conf
# security headers |
example.com.conf
server { |
以防不需要的,或者隐秘的文件被打入镜像. 需要 .dockerignore
node_modules |
打包
如果你的项目用了 sass, 注意你打包的网络, 因为我们都是使用的最小基础 alpine 镜像,没有 py 环境.如果不能下载 sass 包会打包失败.
docker build -t vue-docker:v1 .
启动镜像
docker run -p 8080:80 -d vue-docker:v1