所以我和我的团队已经购买了 Docker——它对于部署和测试来说非常棒。我真正的问题是如何建立良好的开发人员体验,特别是围绕编写 Python 应用程序,但这个问题可以推广到 Nodejs、Java 等。
问题:在编写 Python 应用程序时,我真的很喜欢拥有不错的 linting/自动完成功能,有一些非常好的编辑器(Atom、VSCode、PyCharm)可以提供这些功能,但大多数人确实希望在本地磁盘上安装 Python。 Docker 的真正优势在于,所有核心语言和任何项目库都可以在容器中,因此为了开发而在主机上复制所有这些内容是一件痛苦的事情。
我知道 PyCharm pro 确实支持 Docker 和 docker-compose,但我发现它相当缓慢,并且很多测试运行功能都被破坏了。最重要的是,我真的想要一些可以提交到版本控制的东西,以便团队可以共享开发设置,并且人们不必为自己的系统重复所有步骤。
我的一些想法是:
- 在 sidecar Docker 容器中安装编辑器(如 Atom)并使用 X11 转发
- 使用基于浏览器的编辑器,例如https://c9.io/ https://c9.io/在容器中 - 这似乎是最有希望的
- 在开发容器中安装一些代理,可以处理自动完成/linting等,并从本地运行的编辑器连接到它 - 我认为这将是最好的解决方案,但我也认为现在它实际上不存在。
除了安装卷和编辑文本之外,是否有人幸运地设置了更高效的开发环境?
您应该使用 IntelliJ (Pycharm) 等“高级”IDE 并配置remote Python SDK
使用 SSH 访问您的 App-Docker-Container(使用共享 ssh-key 通过预安装的 openssh 服务器和预配置的authorized_keys 文件对 app-container 进行身份验证)。
您可以在项目文件中与所有开发人员共享此 SDK 信息,这样他们就可以立即使用此设置
1) 这将确保您的 IDE 在运行时了解 docker 容器中可用/安装的所有 python 库/符号。它还将使您能够同时正确地进行远程调试
2) 这可以确保您手头有一个 IDE,其中包括许多重要的附加功能,例如检查器、3way duff、路径搜索……。恕我直言,目前几乎没有任何基于浏览器的 IDE 能够赶上 Pycharm
当然,正如评论中已经提到的,您需要共享(也称为将代码挂载到容器中)。在 Linux 上,您可以简单地使用从本地 src 文件夹到容器的 host-volume-mounts。
在 OSX 上,使用主机挂载时会遇到性能问题。你可能会使用类似的东西http://docker-sync.io http://docker-sync.io(我有偏见 - 还有很多其他类似的工具)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)