【问题标题】:docker compose django and nodedocker compose django 和 node
【发布时间】:2016-05-30 14:16:31
【问题描述】:

我正在尝试通过 docker 在 django 中创建一个应用程序,我希望仅使用一个存储库将后端 (django) 容器与前端 (node, react) 容器分开。

我想从 django 容器运行节点命令(例如:npm init 并在主文件夹中创建 package.json)。

这是个好习惯吗?

如果是,我该怎么做?

提前致谢。

【问题讨论】:

  • 容器的要点之一是您在自己的容器中构建每种技术。为什么你觉得你需要使用同一个容器?
  • 你使用节点只是为了构建静态文件吗?还是作为实际的服务器?
  • 我觉得我不需要使用同一个容器,我觉得我的代码需要使用两个容器和一个存储库。我打算只使用 node 来构建静态文件(使用 webpack)

标签: node.js django docker docker-compose


【解决方案1】:

如果你只需要 Nodejs 来构建,你应该有一个 docker 镜像来构建(如果你想要,部署)静态文件,然后为实际的生产环境使用完全不同的 docker 设置。

您可以查看https://github.com/dkarchmer/django-aws-template(免责声明,我是开发人员)查看示例。不幸的是,该项目尚未经过全面测试和记录,但展示了我建议如何在 Django 之外处理静态文件(它确实模拟了我在生产中所做的真实工作 - 只是没有经过全面测试)。

您将看到一个顶级 docker 映像,我仅用于构建 webpack 类型的项目(使用 gulp),并实际上将其直接发布到 S3。顶层 index.html 文件被复制到 django 模板目录,作为其他 django 模板的基本模板(如果你的前端将 100% 独立于 Django,你可能不需要这个)。但是 IMO,我发现混合起来很有用。例如,我使用常规 django (django-allauth) 完成所有身份验证部分。

您的问题是相当开放式的(在 SO 中并不是一个很好的提问方式),但我希望上面的链接能给您一些关于如何实现所需内容的想法。

【讨论】:

  • 这个项目没有每个技术的容器。一个容器用于django,一个用于nginx,一个用于节点,一个用于数据库,另一个用于数据。我的问题是关于将容器 django 与容器节点链接
  • 但是你说用一个容器建静态文件就可以了。您还询问最佳实践。使用一个容器是错误的做法。我不确定你是否在解释你想要什么。但是我的错误解释很糟糕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多