所以我的团队和我已经购买了Docker - 它非常适合部署和测试。我真正的问题是如何建立一个出色的开发人员体验,特别是围绕编写Python应用程序,但这个问题可以推广到nodejs,Java等。
问题:在编写Python应用程序时,我真的很喜欢具有不错的linting / autocomplete功能,有一些非常好的编辑器(Atom,VSCode,PyCharm)可以提供这些,但是大多数人真的希望在Python上安装本地磁盘。 Docker的真正优势在于所有核心语言和任何项目库都可以放在容器中,因此在主机上复制所有这些只是为了开发是一件痛苦的事。
我知道PyCharm专业版确实支持Docker和docker-compose,但我发现它非常迟缓,许多测试运行功能被破坏了。最重要的是,我真的想要一些我可以提交版本控制的东西,这样团队就可以共享开发设置,人们不必为自己的系统重复所有步骤。
我的一些想法是:
除了安装卷和编辑文本之外,有没有人能够设置更高效的开发环境?
答案 0 :(得分:16)
您应该使用像IntelliJ(Pycharm)这样的“高级”IDE,并使用SSH-Access配置remote Python SDK
到您的App-Docker-Container(使用共享的ssh-key对应用程序容器进行身份验证)预安装的openssh服务器和预配置的authorized_keys文件)。
您可以在项目文件中与所有开发者共享此SDK信息,这样他们就可以开箱即用这个设置
1)这将确保您的IDE了解运行时期间docker-container中可用/安装的所有python库/符号。它还可以让您同时远程正确调试
2)这确保您拥有一个IDE,包括许多重要的附加功能,例如检查器,3路duff,路径搜索......几乎没有任何基于浏览器的IDE会在此时赶上Pycharm恕我直言
当然,正如评论中已经提到的,您需要共享将代码安装到容器中。在linux上,您可以明显地使用从本地src文件夹到容器的主机卷挂载。
在OSX上,使用主机安装时会遇到性能问题。你可能会使用像http://docker-sync.io这样的东西(我有偏见 - 还有很多其他类似的工具)
答案 1 :(得分:1)
我知道这是一个老问题,但是当我在尝试查看其他编辑器可能在这个领域提供什么时偶然发现它时,我想指出 Visual Studio Code 的 Dev Container 概念,这似乎提供迄今为止我见过的最好的集成水平。我希望自己能看到这变成一种行业趋势。
答案 2 :(得分:0)
可以使用x11docker
- x11docker允许在Docker Linux容器中运行图形化桌面应用程序(和整个桌面)。
- Docker允许在隔离的容器环境中运行应用程序。容器需要比虚拟机少得多的资源来完成类似任务。
- Docker不提供允许使用图形用户界面运行应用程序的显示服务器。
- x11docker填补了空白。它在主机系统上运行X显示服务器,并将其提供给Docker容器。
- 此外,x11docker进行了一些安全性设置,以增强容器隔离性并避免X安全性泄漏。这样,沙盒环境就可以很好地保护主机系统免受可能的恶意软件或错误软件的侵害。