使用docker构建本地开发环境
v2ex做了点讨论
最近在研究 remote development 突然想到可以用docker构建本地开发环境,而且优势还挺多的。
优势:
- 组内成员的开发环境一致
- 环境为linux,解决编译时大小写问题,以及可以提供类似生产环境的体验
- node-sass 等需要配置的环境在 dockerfile 内定义好,甚至可能需要的 python 环境也能提供
- 某些没有梯子的小伙伴下载依赖比较困难,需要设置变量,这里可以提前做好
劣势:
- 需要额外的内存开销,对低配机器不友好
- npm 命令需要进入容器内执行
这是目前看到的一些优劣势,总体来说收益比较高。
vscode等编辑器依旧打开宿主机的项目目录进行开发。
搭建
以下文件在我的 github 有提供
dockerfile
构建镜像时注入环境,实测 alpine 镜像由于无 python环境,且本地开发使用并不需要特别在意 image 大小,所以直接使用 node 镜像为基础构建。
构建命令 docker build -t node-front ./ -f ./Dockerfile
1 | FROM node |
docker-compose
目录映射修改一下,或者使用命令直接跑docker run -d -p 8080:8080 -v e:/Coding/vue:/data/code node-front
1 | version: "3" |
容器内操作
- 进入容器
docker exec -it xx /bin/bash
- cd 到项目目录,yarn,然后跑起来即可