趁早学会使用Docker进行本地开发

在进入这家公司前,就想进行使用docker进行本地开发;一是为了跟随潮流,二是容器化使开发环境搭建变的简单。

举几个我在开发遇到的坑:

  1. 接手的外包项目PHP版本可能在7.2以下,这些版本PHP通过brew/ubuntu官方源已经不提供了,并且就算使用了第三方源,也会遇上各种各样的报错;
  2. 我在本地安装了多个版本的PHP,在还没使用php-version前,每次mac os系统更新后,在控制台执行php都会报组件库错误;
  3. 使用到的依赖版本要求严格,比如项目用到的Mysql版本不一致;
  4. 开发时需要安装的各种库,让丐版的我储存空间雪上加霜;
  5. 在mac开发完毕后,在使用windows电脑时,部分库或依赖并不支持windows;
  6. 部署文档或Windows不支持安装这个依赖

如果你也想解决这样的问题,建议是尽快使用Docker进行本地开发。

当然,Docker也有很多缺点,但目前对我来说,最大的缺点是内存占用高,但这是我的问题(下次一定买64G);

使用了Docker后,在想要学习或使用一门技术前,比如Elasticsearch,直接就可以从官方文档或镜像市场找封装好的镜像,免去了部署和踩坑的问题;毕竟对我来说,学习一门技术前,最大的瓶颈就是环境部署;


如果,你使用了Docker,想要解决刚才举例的坑的话,那么也会变的特别简单了:

版本切换:

你可以从官方的镜像市场找到PHP环境镜像:https://hub.docker.com/_/php?tab=tags

然后拉取镜像或创建容器时指定好版本,在同一时刻我们大部分只会进行一个PHP项目开发,我的做法会是将多个PHP版本容器同时暴露同一个端口,这样我需要使用哪个版本的PHP只需要开启对应的和关闭其他的容器就可以了,并且容器的开关速度只需要伸个懒腰的时间。

跨平台使用:

跨平台使用这个主要了解到镜像打包的功能,如何进行镜像打包这个可以在网上找到更多的文章查阅;

如果你是本地开发,可以选择ubuntu作为base,甚至也可以在别人打包好的镜像,在上面新增你需要的依赖后再打包也是可以的;

打包完成后,你可以把你的镜像上传到镜像市场,也可以自己在服务器上部署个镜像环境,各大云市场也直接提供镜像服务。