Docker开发环境中丰富的编辑器

所以我的团队和我已经买进了Docker – 这对于部署和testing来说太棒了。 我真正的问题是如何build立一个伟大的开发人员的经验,特别是在编写Python应用程序,但是这个问题可以推广到nodejs,Java等。

问题是:在编写Python应用程序时,我真的很喜欢体面的linting / autocompletefunction,有一些非常好的编辑器(Atom,VSCode,PyCharm)提供这些function,但是大多数情况下需要在本地磁盘上安装Python。 Docker的真正优势在于,所有的核心语言和任何项目库都可以放在容器中,所以为了开发而在主机上重现所有这一切是一个痛苦。

我知道PyCharm pro支持Docker和docker-compose,但是我发现它非常缓慢,很多testing运行能力都被破坏了。 最重要的是,我真的很希望我可以提交给版本控制的东西,这样团队就可以共享开发者设置,人们不必为自己的系统重复所有的步骤。

我有几个想法是:

  1. 在sidecar Docker容器中安装一个编辑器(如Atom),并使用X11转发
  2. 在容器中使用基于浏览器的编辑器(如https://c9.io/) – 这看起来最有前途
  3. 在一个可以处理自动完成/ linting等的开发容器中安装一些代理,并从本地运行的编辑器连接到它 – 我认为这将是最好的解决scheme,但我也认为现在它实际上不存在。

有没有人有幸成立了一个更高效的开发环境,除了装载卷和编辑文本?

你应该使用像IntelliJ(Pycharm)这样的适当的IDE,使用对你的Docker-Container的SSH访问来configuration一个remote Python SDK (在developer-image上使用一个开发者共享的ssh-key,以及预先安装的openssh服务器和预先configuration的授权文件)。 你可以在你的项目文件中共享这个SDK信息,这样所有的开发者都可以拥有它

1)这将确保您的IDE在运行时知道docker-container中可用/安装的所有python库。 并且还将使您能够同时进行远程debugging

2)这也保证了,你有一个适当的IDE在你的手中,所有的function,你可以想到的。 几乎没有任何基于浏览器的IDE会赶上Pycharm

当然,正如评论中已经提到的,你需要将你的代码分享到容器中。 在Linux上,你显然使用主机卷挂载forms的本地src文件夹到容器。

在OSX上,你会遇到性能问题,可能会使用像http://docker-sync.io (我有偏见 – 也有很多其他类似的工具)

Interesting Posts