一尘不染

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

docker

因此,我和我的团队都购买了Docker-
对于部署和测试而言,它很棒。我真正的问题是如何建立出色的开发人员体验,尤其是围绕编写Python应用程序的问题,但是这个问题可以推广到nodejs,Java等。

问题:编写Python应用程序时,我真的很喜欢具有不错的linting /
autocomplete功能,那里有一些非常好的编辑器(Atom,VSCode,PyCharm)提供了这些功能,但是大多数人确实希望将Python安装在本地磁盘上。Docker的真正优势在于所有核心语言和任何项目库都可以在容器中,因此仅在开发时就在主机上复制所有这些内容是一件痛苦的事情。

我知道PyCharm Pro确实支持Docker和docker-
compose,但是我发现它相当缓慢,并且许多测试运行功能都被破坏了。最重要的是,我真的希望我可以致力于版本控制,以便团队可以共享开发人员设置,而人们不必为自己的系统重复所有步骤。

我的一些想法是:

  1. 在Sidecar Docker容器中安装编辑器(如Atom)并使用X11转发
  2. 在容器中使用基于浏览器的编辑器,例如https://c9.io/-这似乎最有希望
  3. 在可以处理自动完成/删除等操作的dev容器中安装一些代理,然后从本地运行的编辑器连接到它-我认为这是最好的解决方案,但我也认为现在它实际上不存在。

除了挂载卷和编辑文本之外,还有谁能幸运地建立一个更具生产力的开发环境?


阅读 382

收藏
2020-06-17

共1个答案

一尘不染

您应该使用像IntelliJ(Pycharm)这样的“高级” IDE并配置remote Python SDK对您的App-Docker-
Container使用SSH访问(使用共享的ssh-
key通过预先安装的openssh服务器和预配置的authorized_keys文件对应用程序容器进行身份验证)。您可以与所有开发人员在项目文件中共享此SDK信息,因此他们将立即使用此设置

1)这将确保您的IDE知道在运行时在docker-container中可用/安装的所有python库/符号。它还将使您能够同时正确地进行远程调试

2)这样可以确保您手边有一个IDE,其中包括许多重要的附加功能,例如检查器,3way
duff,在路径中搜索。在这一点上,几乎所有基于浏览器的IDE都不会赶上Pycharm

当然,正如评论中已经提到的,您还需要共享将代码装入容器中。在Linux上,您通常使用从本地src文件夹到容器的host-volume-mounts。

在OSX上,使用主机挂载时会遇到性能问题。您可能会使用类似http://docker-sync.io的东西(我有偏见-还有很多其他类似的工具)

2020-06-17