2016-12-24 48 views
9

所以我和我的团队都买入了Docker--这对部署和测试来说太棒了。我真正的问题是如何设置一个伟大的开发人员的经验,特别是围绕着编写Python应用程序,但这个问题可以推广到nodejs,Java等。Docker开发环境中丰富的编辑器

问题:在编写Python应用程序时,我真的很喜欢有体面的linting/autocomplete功能,那里有一些非常好的编辑器(Atom,VSCode,PyCharm)提供这些,但是大多数真的需要在本地磁盘上安装Python。 Docker的真正优势在于,所有的核心语言和任何项目库都可以放在容器中,因此为了开发而在主机上重现所有这些都是一种痛苦。我知道PyCharm pro不支持Docker和docker-compose,但是我发现它非常缓慢,很多测试运行功能都被破坏了。最重要的是,我真的希望我能够承诺进行版本控制,以便团队可以共享开发人员设置,而且人们不必为自己的系统重复所有步骤。

的一些想法,我所做的是:

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

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

+1

为什么不只是运行编辑本地和文件存储在共享卷,以便更改传播?这与我与流浪者做的事情是一样的。 –

+0

@MattSchuchard @MattSchuchard确定它适用于主要源文件 - 我使用自动完成/内省来了解库文件,这些文件位于泊坞窗容器中,而不是作为卷装入。 –

+0

在容器初始化期间是否会自动设置库文件?我认为他们之后不应该受到手动更改,除非这是一个非常不稳定的开发环境。 –

回答

13

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

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

2)这还可以确保您拥有一个合适的IDE,并具备您可以想到的所有功能。几乎没有基于浏览器的IDE会赶上Pycharm

当然,正如评论中已经提到的那样,您需要将您的代码分享到容器中。在linux上,你明显使用host-volume-mount从本地src文件夹到容器。

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

+0

谢谢! @Eugen Mayer – aserww106

+0

这听起来像是我需要的,但我并不真正了解你的意思是“远程Python SDK”。在网上查找它,我从PyCharm找到了关于设置这样的文档,但是我没有真正运行它的工作。 :( – CoreDumpError

+0

因此,您建议修改应用程序的Dockerfile以包含ssh和openssh服务器,以便您可以从IDE隧道到它? – Pitt