docker快速搭建前端开发环境(1打包镜像)
为什么要使用docker搭建前端开发环境?
我们在前端开发环境搭建常常遇到的几个问题:
1.新设备需要重新安装开发环境,对新人接触新的项目不友好,环境搭建成本高
2.新旧版本的node API不统一的问题,项目转接困难
3.开发其他项目,则需要重新配置对应的环境
而docker可以让开发者打包他们的应用以及依赖到一个轻量级,可移植的容器中。(docker采用的是完全的沙箱机制,容器之间互不影响,更重要的是,容器所带来的性能开销极低)
打包镜像:
①安装docker
这里明哥的ubuntu版本是Ubuntu Trusty 14.04
安装过程参考 http://www.docker.org.cn/book/install/install-docker-trusty-14.04-26.html
问题:doker启动时,报错:docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 23\"": unknown.
原因:docker的版本和linux的内核版本不兼容
解决:apt-getinstall--install-recommends linux-generic-lts-xenial (升级内容,之后需重启)
②准备dockerfile文件构建镜像
docker_test文件夹下新建Dockerfile文件
Dockerfile文件内容如下 (其他概念性内容可参考明哥之前docker笔记)
执行 docker build -t vuetest:1.0 . (注意命令后面有个点,有个点,有个点)
神奇的n模块:node版本更新
n stable:升级node.js到最新稳定版
问题:node npm install Error: CERT_UNTRUSTED
原因:ssl验证问题,使用下面的命令取消ssl验证即可
解决:npm config set strict-ssl false
此时我们的镜像已经搭建成功
③将镜像跑到容器上
拉vue代码,然后npm install
④使用docker commit再次提交新的镜像
docker commit命令:可以想象是往git里提交变更;首先创建一个容器,在容器里做修改,就像是修改代码一样,最后将修改提交成为一个新的镜像
docker ps -a 查看所有容器(我们刚才git克隆test2项目的镜像id是5aaff91eea12,明哥专门进去确认了下)
docker commit 将容器打包成一个新的镜像 my_vue_test 1.0版本
圆满完结,撒花!