如何将多容器应用部署到 Heroku?

时间:2021-02-07 10:46:33

标签: docker heroku docker-compose

我有以下 docker-compose.yml。它有多个相互通信的服务。

version: "3.9"

services:
  model:
    build:
      context: ./services/model
      dockerfile: Dockerfile.dev
    container_name: model
    volumes:
      - ./services/model/:/usr/app

  server:
    build:
      context: ./services/server
      dockerfile: Dockerfile.dev
    container_name: server
    env_file: ./services/server/.env
    depends_on:
      - db
      - model
    volumes:
      - ./services/server/:/usr/app
      - node_modules:/usr/app/node_modules
    ports:
      - "${SERVER_PORT}:${SERVER_PORT}"

volumes:
  dbdata:
  node_modules:

我想将其部署到 Heroku。我找到了关于如何使用 heroku.yml 将多容器应用程序部署到 Heroku 的 this article。但是似乎没有任何关于如何在这些容器之间创建网络并让它们相互通信的解释。

我想知道如何使用 Heroku 完成同样的任务。

谢谢!

已编辑

我删除了 db 服务,因为可以使用 heroku 的 postgres 插件。另外,请忽略卷安装部分。只是为了本地开发。

但是,我需要 servermodel 服务通信。因此,我需要它们像在 docker-compose 中那样位于同一个网络上,这会为容器之间创建一个虚拟网络来相互通信。我还看到 this answer 说可以使用 Docker swarm。但我发现它不再被积极维护。 Kubernetes 也可以是一种选择,但我需要某种方式在 Heroku 上部署这种应用程序。我是 Docker 的新手。所以任何建议都将不胜感激!

谢谢!

0 个答案:

没有答案