docker - 如何在相同的 Heroku 应用程序但不同的 docker 镜像中部署前端和后端

标签 docker heroku devops

我正在创建一个 Web 应用程序,前端使用 Angular,后端使用 Flask。我已经“dockered”了我的应用程序,但我不确定如何在 Heroku 中将它们作为相同的应用程序获取

我一直在读到有些人使用了反向代理服务器(这意味着两个应用程序都在不同的 heroku 应用程序中,他们使用像 traeffik 或 haproxy 这样的代理连接它们)。但我不想这样做,我希望它们在同一个应用程序中(例如: grupo-camporota.herokuapp.com )

我在想我应该推送两个图像,一个作为 web dyno(前端),另一个作为 worker (后端),但我读到工作的 dyno 不是为了这个,而是为了 EXTERNAL api。我想将两个图像上传到 heroku 并让它们在它们之间进行通信。

我想知道如何完成这项工作(我很确定这是可能的),因为我有点迷茫

最佳答案

你的后端不能是一个 worker dyno: only web dynos can receive traffic from the internet 。一个应用程序只会 get a single port to listen on ,所以你不能在一个应用程序上运行两个服务。

您可以将前端作为静态文件从后端提供,但我认为这不适用于 Docker。此外,Flask 本身不喜欢提供静态文件,因此这也可能不太合适。

还有 looks like 您无法使用 Heroku 上的专用网络在 Docker 容器之间进行通信。您可能只需要部署两个应用程序(或在更合适的静态主机上托管您的前端)。

关于docker - 如何在相同的 Heroku 应用程序但不同的 docker 镜像中部署前端和后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756808/

相关文章:

symfony - 如何正确检查是否安装了 Symfony 应用程序?

azure - 如何在 Azure DevOps 中访问其他组织的存储库?

java - 如何通过 Docker-java 获取现有容器 ID 的列表

docker - 无法在 docker-compose 中为 .env 文件设置不同的名称

heroku - 如何将 .php 文件上传到 Heroku

postgresql - 无法添加 heroku-postgres 插件

amazon-web-services - Terraform:AWS Cloudfront 分布在将 Terraform 状态后端从本地更改为 s3 后给出 CNAMEAlreadyExists 错误

mysql - Docker mysql 主机没有特权

python - 从一个容器到另一个容器运行命令

python - 在 Heroku 上部署 playwright-python