释放容器时,Heroku CLI“未为进程类型Web指定命令”

时间:2019-04-27 19:31:46

标签: docker heroku

我正在使用Docker容器部署.Net Core应用程序。

我能够使用heroku container:push web

成功推送图片

但是调用heroku container:release web会返回No command specified for process type web

我有点困惑,我尝试添加heroku.yml

setup:
  addons:
    - plan: heroku-postgresql
      as: DATABASE
build:
  docker:
    web: Dockerfile
  config:
    ASPNETCORE_ENVIRONMENT: development
run:
  web: dotnet Api.dll

在根目录上,但仍然没有运气。

我可以确认图像是在docker中看到的

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
registry.heroku.com/immense-temple-11020/web   latest              5cb62a9af317        16 minutes ago      272MB

如果有人能指出我正确的方向,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

在Dockerfile末尾是否指定了CMD指令?如果不是,那很可能会引起问题,然后您可以使用heroku.ymlheroku stack:set container来解决此问题。

Heroku在其文档中对此不清楚。我可以像以前一样,在没有CMD指令的情况下使容器在本地运行。但是,如果您阅读Heroku文档herehere,您会发现Heroku认为Dockerfile将指定要运行的CMD是理所当然的。

在我在Dockerfile的末尾添加CMD指令之前,我遇到了同样的问题。尽管我应该正确地将其作为CMD指令的内容,但我仍在工作,但我不再遇到No command specified for process type web错误。

自从您切换为使用heroku.yml以来,您就可以使用{p> 1

CMD

Heroku docs say“如果不包括run: web: dotnet Api.dll 部分,Heroku将使用Dockerfile中指定的run。”

答案 1 :(得分:0)

搜索了几个小时后,我找出了原因。

显然是如果忘记打电话了 heroku stack:set container

现在我可以部署和发布了!