Heroku 从现有的 docker 镜像部署



我正在尝试使用现有的docker映像在Heroku上部署GitHub机器人。

映像已生成。我做了什么来尝试将其部署到 Heroku:

$ heroku login
Logging in... done
Logged in as EMAIL
$ heroku container:login
Login Succeeded
$ docker tag IMG_ID registry.heroku.com/APP/web
$ docker push registry.heroku.com/APP/web
The push refers to repository [registry.heroku.com/APP/web]
ABC: Layer already exists 
XYZ: Layer already exists 
...
lastest: digest: sha256:NUMBER size: SIZE
$ heroku container:release registry.heroku.com/APP/web
Expected response to be successful, got 404

并且没有发布。

我基于 https://devcenter.heroku.com/articles/container-registry-and-runtime#release-phase 并将现有 Docker 映像部署到 Heroku 的这些步骤,但它似乎对我不起作用。

在这一点上,我很困,任何帮助将不胜感激。

编辑:

码头工人拉取:

$ docker pull registry.heroku.com/APP/web
Using default tag: latest
latest: Pulling from APP/web
Digest: sha256:NUMBER
Status: Image is up to date for registry.heroku.com/APP/web:latest

希罗库跑:

$ heroku run bash --type=web
Running bash on ⬢ APP... up, web.1514 (Free)

我认为您的发布命令格式不正确:您不应该指定完整的图像标签,而只指定dyno类型。

对我有用的是heroku container:release web -a <app>

似乎您无法直接指定图像版本/标签;container:release总是采用latest标签。

在 Ruby on Rails 中,你可以编写 Procfile 来指定进程类型 喜欢这个:

web: rails s
worker: rake jobs:work 

最新更新