使用Docker从Django应用程序创建离线版本

时间:2017-07-27 15:03:52

标签: django docker offline data-synchronization

我是Docker的新手,在进一步调查之前,我想断言它是满足我需求的合适工具。

以下是这种情况: 我必须开发一个主要在线使用的Django应用程序。但有些用户有时需要离线使用此应用。然后,重新上线,他们需要将工作推送到主应用程序。

Docker可以帮助我为这些用户提供一个完全正常工作的在线应用程序离线版本,只需很少的工作(从他们那里,显然不是我......)?

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

Docker将帮助您脱机运行堆栈,从而帮助完成所有环境部分,以完全相同的方式运行数据库,应用程序,代理,就像它们在线一样 - 无论实际用户使用哪种操作系统。 / p>

这可以减少您使应用程序在线运行与离线完全相同的工作量,无论是在Windows,Mac还是Linux上。

Docker虽然不会以任何方式帮助您管理数据库合并,文件系统合并或类似的东西。如果2个用户离线更改相同内容然后尝试同步,则无论是否使用泊坞窗,您都会遇到麻烦。

对于那些数据库合并和文件合并,您需要不同的技术,这些技术可以与docker一起使用 - 而且不需要。

答案 1 :(得分:0)

简短的回答是,是的,Docker会提供帮助。

较长的答案是高度主观的,意见将取决于如何达到预期的结果。例如,现在可以使用VirtualboxVagrant等虚拟化工具创建离线开发副本一段时间。

所以我先问自己以下问题:

  1. 我通常在生产中将我的应用程序部署在哪里?
  2. 此部署是自动化且可重复的吗?
  3. 是否捕获了我的所有应用程序的平台(和数据)依赖项?
  4. 所有问题的一个好答案为您提供了一个采用Docker等新技术的好地方。您只需要了解您现在正在做的事情与您需要做的事情之间的差异。不幸的是......公司拥有我称之为“魔法构建服务器”的#并不常见,由传递向导创建,负责所有软件版本:-(

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

    假设(另一方面)你能够采用像Docker这样的新技术,那么我会问自己一些非常相似的问题:

    1. 我打算在生产中运行docker应用程序?
    2. 将使用哪种编排技术来部署和管理Docker容器?
    3. 我将如何构建和存储每个应用程序版本的Docker镜像?
    4. 跳到答案我会立即推荐最大最轻的容器管理解决方案:Kubernetes。它越来越多地被像Google和Azure这样的云提供为本机服务。从历史上看,Kubernetes很难在本地运行,但现在随着minikubeminishift等工具的出现而发生变化。我会在那里停下来。

      总之,我希望我的长期咆哮对你的决策有一些小的好处。