我想为开源项目创建一个“部署到 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.json和heroku.yml文件在部署时从 master 成功构建了容器。
如何在部署时从 Docker Hub 中提取,而不是从源代码构建?
您可以执行此操作的唯一方法是拥有一个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 的构建系统来拉取镜像。
| 归档时间: |
|
| 查看次数: |
1490 次 |
| 最近记录: |