前言
本文意在使用 docker 帮助前端同学搭建统一的前端开发环境—解决因为不同的开发环境(mac、windows、linux)导致的各种依赖相关或者运行中丢失某些文件的问题
安装docker
以windows为例,官网直接download软件安装,看到下图则安装成功
设置国内代理加速
{
"features": {
"buildkit": true
},
"experimental": false,
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"]
}
开发
- 在项目根目录中创建一个名为 Dockerfile 的文件,用于docker构建镜像相关的配置
#设置构建的基础镜像
FROM node:14.17.0-alpine
COPY package.json ./
#设置npm下载依赖来源为淘宝源
RUN npm config set registry https://registry.npm.taobao.org
RUN npm install -g pnpm
#安装项目依赖
RUN npm run bootstrap
COPY . .
#在启动镜像时执行启动项目的命令
CMD npm run serve
#暴露端口用于外部访问
EXPOSE 8080
- 在项目根目录中创建一个名为 .dockerignore 的文件,用户忽略docker复制过程忽略的文件
node_modules
dist
- 构建开发环境镜像
- -t: 设置容器的名称
- . : 是打包当前目录所有东西(不包括.dockerignore 中的文件)
docker build -t prototype-front .
docker软件可观察到生成的镜像
- 启动容器
docker run -d -p 8080:8080 -v D:/work/txyx-app-prototype-front/src:/src --name prototype-front-contanier prototype-front
执行 run 命令去启动一个容器
- -d: 后台运行
- -p: 映射容器内的 8080 端口到主机的 8080 端口
- -i: 交互式操作
- -t: 终端
- -v: 文件映射,将主机本地的文件映射到容器中,这样我们本地修改文件内容,可以动态看到页面的变化了;windwos下需指定文件的绝对路径
- --name:指定容器名称
- prototype-front: 这是指用 prototype-front 镜像为基础来启动容器
至此就可以开始愉快的开发了
注意点
- 无法实时自动刷新浏览器,需手动刷新浏览器代码才能生效
- 映射文件夹外更新时需重新生成镜像
- windows下文件映射时,宿主文件夹需指定绝对路径