之前看了社区论坛里一位大佬的关于docker的帖子,里面提到可以用docker解决代码打包部署时因为编译项目多导致很慢的问题。但是里面没具体说到是怎样实施的。所以发个帖子向各位请教下,看本人这样做是否可行。
举个例子:我公司开发语言是go,项目里有30个微服务,每次更新测试环境,都是先git checkout branch,再git pull下代码,然后make 编译这些服务,再reload所有服务,至此环境更新好。
但是每次最慢的就是在make这30个服务,要花个2,3分钟。我是觉得很慢的。所以打算弄个镜像,里面包含go语言环境,和测试环境一样的环境变量,及git服务。
1.根据镜像起10个容器,容器占用内存不需要很大,因为我只需要在容器内编译服务,不启动服务,所以不要很大内存。每个容器指定只编译其中3个服务,然后挂载到测试环境的build目录中。
2.测试环境写个脚本,每次更新代码时,都是同时执行这10个容器内的脚本,这样原来需要花3*60=180s的编译时间,现在缩短了十分之一,只需要18s。
3.挂载到测试环境后,就reload下服务,测试环境更新完成。

疑惑点:
一个宿主机内起10个容器,在执行脚本,让10个容器并行编译服务,是否真的能做到“并行”?因为假设宿主机是4核8g的配置,那么最多也只能并行4个容器编译吧.


↙↙↙阅读原文可查看相关链接,并与作者交流