释放容器时 Heroku CLI "No command specified for process type web"



我正在使用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

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

您是否在

Dockerfile 的末尾指定了 CMD 指令?如果不是,则可能导致问题,然后您可以使用heroku.ymlheroku stack:set container来解决该问题。

Heroku在他们的文档中对此不清楚。我能够让我的容器在没有CMD指令的情况下在本地运行,很可能就像你一样。但是,如果您在这里或这里阅读 Heroku 文档,您会发现 Heroku 理所当然地认为 Dockerfile 将指定要运行CMD

我遇到了同样的问题,直到我在 Dockerfile 的末尾添加了 CMD 指令。我仍在工作,尽管我应该将什么作为我的CMD指令,但我不再收到No command specified for process type web错误。

由于您切换到使用heroku.yml因此CMD您可以使用

run:
  web: dotnet Api.dll

Heroku 文档说:"如果您不包含run部分,Heroku 将使用 Dockerfile 中指定的CMD

我在搜索了几个小时后找到了原因。

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

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

相关内容

最新更新