如何通过 app.json 在 Heroku 上运行 Docker Hub 容器?

Ben*_*ins 4 heroku docker

我想为开源项目创建一个“部署到 Heroku”按钮。单击按钮时,我希望 Heroku 部署来自 Docker 中心的最新映像。我怎样才能通过我的app.json清单实现这一点?

app.json模式可以让我设定"stack": "container"以指定我想运行一个容器,但所有我已经能够实现与该设置是从源代码编译的容器,通过heroku.yml文件。

从我的app.json

  "stack": "container",
  "formation": {
    "worker": {
      "quantity": 1
    }
  }
Run Code Online (Sandbox Code Playgroud)

从我的heroku.yml

build: 
  docker:
    worker: Dockerfile
Run Code Online (Sandbox Code Playgroud)

上面的app.jsonheroku.yml文件在部署时从 master 成功构建了容器。

如何在部署时从 Docker Hub 中提取,而不是从源代码构建?

Dam*_*IEU 5

您可以执行此操作的唯一方法是拥有一个Dockerfile.heroku包含以下内容的文件:

FROM <your dockerhub image>
Run Code Online (Sandbox Code Playgroud)

然后,在heroku.yml

build: 
  docker:
    worker: Dockerfile.heroku
Run Code Online (Sandbox Code Playgroud)

通过这个过程,Heroku 将始终从源代码构建。但它会通过从 DockerHub 拉取镜像来实现,丢弃其他所有内容。

没有办法只使用 Heroku 的构建系统来拉取镜像。