【问题标题】:Dockerizing a meteor appDocker 化一个流星应用程序
【发布时间】:2018-01-22 13:59:41
【问题描述】:

因此,我们的想法是对 2015 年以来的现有流星应用程序进行 docker 化。该应用程序分为两个(后端和前端)。我已经制作了一个巨大的 bash 脚本来处理所有旧的依赖项......软件依赖项......等等。我只需要运行脚本,我们就可以运行应用程序。但现在的想法是为该项目创建一个 docker 映像。我应该如何实现这一目标?我应该创建一个空的 docker 映像并在那里运行我的脚本吗?谢谢。我是 docker 新手。

【问题讨论】:

  • 我建议避免使用 shell 脚本,阅读如何编写 Dockerfiles,这是build images 的好方法。另外,请记住,使用 docker 的想法是将事物分开(例如,应用程序的不同容器、数据库......)并避免将其“一体化”,这将使您的应用程序成为 “单体” 应用程序。
  • 我可以从 Dockerfile 中调用我的脚本吗?
  • 是的,你可以。只需将脚本复制到容器中并调用它。但大多数情况下,所有依赖项安装脚本都可以简化为几个简单的安装命令,因为您知道在容器中运行的操作系统和包管理器以及它们的版本。
  • 我需要安装很多东西才能让应用程序运行,所以我真的需要运行该脚本,或者只是将所有内容粘贴到 dockerfile 中......无论如何,谢谢!跨度>
  • “我需要安装很多东西...” 我对此的评论是:了解docker images 的构建方式和概念layers 他们有。

标签: docker meteor


【解决方案1】:

更多关于堆栈、脚本、依赖项的信息可能会有所帮助。 假设此应用程序尚未开发,您可以简单地使用例如 nginx 图像,并为其提供要服务的前端文件。

对于后端,有多种选择,例如 phpnode 等。 后端镜像的dockerfile 应该包含依赖项的安装和设置(除了数据库等其他服务。有图像可以分开)。

为简单起见,您应该尝试 docker-compose 将您的容器配置为作为一个整体的服务(并为您节省一些配置)。

稍后,为了扩大规模,您可以寻找编排工具,例如 kubernetes。但我认为,这项服务还没有(根据你的问题)。 :)

【讨论】:

  • 是的,我的想法是对前端、后端和 mongo 进行 dockerize。然后使用 docker-compose 链接所有 3。你觉得呢?关于堆栈,它是节点 - 流星 - nginx - mongo。其余的依赖项只是项目的 npm 和一些需要安装的 3rd 方软件,这是通过从 git repo 中提取并在其 .c 文件上运行“make”来实现的。
  • 听起来不错。您的堆栈的所有组件都有官方图像,您可以找到具有相同堆栈的文章和 github 示例。 (只需谷歌搜索“nginx,node,mongo docker”。)如果您不需要任何魔术安装依赖项,那么您最好使用官方node image 而无需任何修改,因为它会在启动时安装 npm 依赖项。 :)
  • 我确实需要很多魔法才能发生;P。这就是为什么我编写了一个脚本(由 4 个其他脚本组成),以便其他开发人员在我做不到的情况下接受它。基本上我需要 image/vm/machine 来安装很多核心操作系统依赖项,以及全局 npm 包。我仍然很迷茫,但你的观察有所帮助。谢谢大佬。
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2020-09-28
相关资源
最近更新 更多