首页  >  问答  >  正文

docker搭建的开发环境真的可以让不懂搭建环境的小白程序员迅速上手开始写代码么?

对 docker 刚刚开始学习,是因为开始了一个新的项目,使用的是 Django+Hbase+Git,光搭建普通的开发环境就得耗费很长时间,所以研究了一下 docker,但是对 docker 搭建开发环境还是有些不了解。

我们项目组的设想就是只要每个人主机上安装了 docker,就可以直接在 docker 里使用 Pycharm 进行开发,修改代码和通过 Git 同步,最理想的情况是其他开发者连 Pycharm 都不用装,次些的情况是开发人员只需要安装了 python,Pycharm,和 docker,就可以在本地的 Pycharm 里对代码进行普通的调试运行,不知道 docker 能否实现这样的功能,求大神指教lol

过去多啦不再A梦过去多啦不再A梦2736 天前780

全部回复(2)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-16 13:19:27

    首先docker里面是不能跑pycharm的,你要把docker的每个容器当做是一个独立的电脑。试问,别人的电脑上装个pycharm,你们在同个局域网的时候,你能用他的pycharm来编辑你电脑上的python代码吗?

    docker主要搞定是环境的隔离和打包

    环境的隔离:docker的每个容器可以简单理解为一个沙箱,在容器里面安装的各种软件都不会影响宿主机的真实软件环境。假设一个场景,你手上有10个同时在维护的项目,但是问题是这10个项目各自依赖的python版本都不相同(项目1依赖python1.1,项目2依赖python1.2,项目3依赖python2.1...项目10依赖python3.3),如果不用docker,你怎么办?在你电脑上把每个版本都装一个?各个版本之间的环境依赖会不会有冲突?是不是想想就头大。而docker就完全ok,他们各自环境完全独立互不影响,想怎么玩都行

    环境的打包: 假设你们有个100人的开发团队,有的开发环境是windows,有的是linux(具体发型版还各不相同),有的是mac。各自系统上安装的软件版本各种五花八门。这时候你们要开发一个项目,既然是一个项目,那必定最好是要统一开发环境咯,一致的各种配置参数,一致的python版本,一致的各种扩展包及扩展包的版本,一致的环境变量等等,这时候如果让各自配置各自的环境,可能对于老手来说三下五除二就搞定了,但是对于经验不是很足的新人来说,可能就这个环境就得搞好几天。而docker就简单了,只要一个人写好一个dockerfile文件,里面写好各种配置,再分发给所有开发组成员,大家只需要一个docker build命令,就完成了环境的搭建,而且软件运行的系统环境,配置参数,扩展库及依赖等都是一致的。项目完成之后,实际上线时,也可以用这个dockerfile来一键搭建线上的软件项目运行环境(或者直接将本地开发时使用的容器打包为镜像,然后发布镜像),而且保证了线上运行环境和本地开发环境的一致,避免了各种因环境不同搞出来的各种问题了。

    就你的问题而言,结合我个人的使用经验,Django,Hbase可以放在docker里面(Django镜像应该自带python运行环境),pycharm和git安装在宿主机。所以开发人员需要安装的是pycharm+git+docker就好了

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:19:27

    docker可以跑 pycharm? 再说了一个python环境而已,第三方引用也很好控制。
    docker更多的作用是运维方面的,部署即用,不用搭建程序的运行环境。开发好了打包发布嘛,难道是想开发机器用docker?那就很有勇气啦。

    回复
    0
  • 取消回复