Docker实践-搭建统一的H5开发环境

背景

在团队协作开发的过程中,有的同事用windows,有的用mac;我本人用的mac。在多人协作开发H5项目(ionic)的过程中会碰到以下问题:

  • windows下经常无法打release
  • windowsnpm install经常失败
  • 编写的热更新打包脚本只支持linuxmac等环境,在windows上执行不了

使用Docker统一开发环境

利用docker的容器技术在macwindows下运行一个统一的centos终端,一方面可以解决上面提到的问题,另外也可以让团队成员学习并熟悉linux下常用的命令。

下载并安装docker

https://www.docker-cn.com/
https://www.docker.com/

docker镜像加速器

--registry-mirror=https://registry.docker-cn.com
--registry-mirror=http://hub-mirror.c.163.com

http://datastart.cn/tech/2016/09/28/docker-mirror.html

编写Dockerfile

# Dockerfile for ionic project
FROM centos:7

RUN curl -sL https://rpm.nodesource.com/setup_6.x | bash -; \
yum install epel-release; \
yum -y install nodejs npm git zip; \
yum clean all; \
npm install -g ionic; \
npm install -g cordova-hot-code-push-cli; \
npm install -g gulp; \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \
echo "Asia/Shanghai" >> /etc/timezone; \

# 后面2行是设置centos的时区

下载镜像

# 进入到Dockerfile目录执行
$ docker build -t centos:mobile .

启动容器

$ docker run -it -v /Users/issuser/code:/home/code -p 8100:8100 -p 10001:10001 -p 3001:3001 --name ionic centos:mobile bash

# -v 挂载数据卷:将宿主机(windows、mac)的目录挂载到容器(centos)的`/home/code`目录下
# -it :命令行交互
# -p 8100:8100,端口映射,将宿主机的8100端口映射到容器的8100端口
# -name ionic :给容器起个别名,后面可以用这个别名来操作此容器

注意:windows下挂载目录到容器中比较麻烦。目前可以这样做:

  • 目录必须在c:/Users下(注意大小写,windows下坑真多),最好给everyone设置了读写权限
# os x
$ docker run -v /Users/:/ ...
# windows
$ docker run -v /c/Users/:/ ...

docker维护常用命令

# 查看当前正在运行的容器实例
$ docker container ls

# 查看当前所有的容器实例
$ docker container ls -a

# 删除名为ionic的容器实例
$ docker rm ionic 
# or
docker container rm ionic

# 删除虚悬的镜像
$ docker rmi $(docker images -q -f dangling=true)

# 启动容器
$ docker start ionic

# 进入容器
$ docker attach ionic

你可能感兴趣的:(Docker实践-搭建统一的H5开发环境)