将现有 heroku 应用程序的堆栈从 heroku-18 设置为 Docker 映像的“容器”?

问题描述 投票:0回答:3

我正在尝试找到一种将堆栈设置为“容器”的方法,这样我就可以将我的应用程序部署在 docker 镜像而不是 heroku-18 中。这样做的原因很复杂,但却是必要的。

Heroku Docker 镜像设置文档 说我可以在我的

app.json
文件中执行此操作,如下所示:

"stack": "container"

但是这样做会导致通过在线界面部署时出错:

 !     No default language could be detected for this app.
            HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
            See https://devcenter.heroku.com/articles/buildpacks
 !     Push failed

还有其他方法可以将

stack
设置为
container
吗?例如,根据 these docs 也可以使用
Dockerfile
进行设置,但尚不清楚具体如何操作。

我知道我可以使用 heroku CLI,但我更愿意在我的 git repo 中设置它,因为这个应用程序也会部署到其他用户。

提前感谢您的任何建议!

docker heroku plotly-dash
3个回答
15
投票

只需要运行这个命令

$ heroku stack:set heroku-18 --app HEROKU_APP_NAME

或您需要的任何堆栈

# $ heroku stack:set <heroku-stack> --app HEROKU_APP_NAME
$ heroku stack:set heroku-22 --app HEROKU_APP_NAME

2
投票

要使用命令行将堆栈设置为

container
(作为编辑
app.json
的替代方法),我相信

heroku stack:set container

会成功的。您可以在此处阅读有关在 Heroku 上部署容器的更多信息(有关上述语法,请参阅入门的第 3 步):

https://devcenter.heroku.com/articles/build-docker-images-heroku-yml


0
投票

我也遇到了同样的问题

当您创建“部署到 Heroku”按钮时,“stack: container”方法的 app.json 规范有效。 (GUI 方式)docs

https://heroku.com/deploy?template=https://github.com/user/repo
单击此链接即可。建设将是成功的。

但是如果你按照下面的方法是行不通的:

  • 从 heroku 仪表板创建一个新应用程序
  • 转到部署选项卡

image

  • 连接到github仓库 image
  • 然后点击部署 image
© www.soinside.com 2019 - 2024. All rights reserved.