使用Docker创建Django应用程序的脱机版本

问题描述:

我是Docker的完全新手,在推进进一步调查之前,我想断言它是适合我需求的正确工具。使用Docker创建Django应用程序的脱机版本

这里的情况: 我必须开发将主要在网上使用的Django应用程序。但有些用户有时需要离线使用这个应用程序。然后,回到在线状态,他们需要将工作推到主应用程序。

可泊坞窗帮我给这些用户的在线应用程序的完全脱机工作版本很少的工作(从他们身上,我不是很明显......)?

感谢您的答案。

泊坞窗将帮助您与堆栈脱机运行,所有的环境部分,从而帮助,以完全相同的方式运行数据库,应用程序,代理,因为它们是在线 - 不管哪个OS实际的用户不使用。

这将减少你的努力有确切的在线离线运行方式相同的应用程序,无论是在Windows,Mac和Linux操作系统。

码头工人虽然不会以任何方式帮助您管理数据库合并,文件系统合并或类似的东西。如果2个用户离线更改相同的事情,然后尝试同步它,则无论您是使用Docker还是不这样做,都会遇到麻烦。

对于数据库的合并和文件合并,你需要不同的技术,可与码头工人使用 - 不会。

+0

提及数据库合并的+1。如你所说,这是独立于使用Docker的问题。公平地说,Django内置了模式管理,但在数据库中合并数据当然没有什么灵丹妙药。需要将其构建到用于创建应用程序的独立副本的自动化中。 –

+0

我不会说数据库同步不是问题,但它是我可以处理的。我的主要问题是在线下部分,您的回答证实了我对Docker的帮助有多大的感觉。我处于项目的早期构想阶段,所以我认为我不会在一段时间之前处理Docker,但它可以让我预见未来的工作。 –

简短的回答是,是的,Docker会有所帮助。

较长的答案是非常主观的,对于如何达到预期的结果,意见会有所不同。例如,使用虚拟化工具(如VirtualboxVagrant)创建脱机开发副本已经有一段时间了。

所以我会问自己以下几个问题第一:

  1. 我在哪里可以正常展开我在生产中的应用?
  2. 此部署是否自动且可重复?
  3. 是否捕获到我的应用程序的所有平台(和数据)相关性?

对于所有问题,一个很好的答案可以让你成为采用像Docker这样的新技术的好地方。你只需要了解你现在正在做什么和你需要做什么之间的差异。不幸的是,公司拥有我称之为“神奇构建服务器”的情况并不少见,我们称之为“神奇构建服务器”,由通过向导创建,负责所有软件版本:-(

假设最糟糕的建议是从使用虚拟机重复部署应用程序使用CAPS工具之一(Chef,Ansible,Puppet,Salt)来捕获设置服务器所需的所有步骤,换句话说,通过捕获您的infrastructure as code开始练习DevOps。 test kitchen将所有这些联系在一起在本地开发人员环境中。

假设(在另一方面),你是在一个很好的位置,采用新的技术,如码头工人,然后,我再问问自己一些非常类似的问题:

  1. 我在哪里打算运行我的搬运工生产中的应用?
  2. 什么编排技术将用于部署和管理Docker容器?
  3. 我将如何构建和存储每个应用程序发行版的Docker镜像?

跳转到答复我建议现在最大最容易的容器管理解决方案:Kubernetes。它正在越来越多地被谷歌和Azure等云端提供为本地服务。历史上Kubernetes很难在本地运行,但现在随着minikubeminishift等工具的出现而改变。我会在那里停下来。

总之,我希望我的长时间咆哮对你的决策有一点好处。