Heroku一键部署golang应用程序与docker



我是heroku的新手,我想让人们通过"部署到heroku"按钮在自己的实例上轻松安装我的应用程序,如下所述https://devcenter.heroku.com/articles/heroku-button.

我现在已经在我的开发分支上创建了一个app.json:https://github.com/scribble-rs/scribble.rs/blob/develop/app.json

{
"name": "Scribble.rs",
"description": "A multiplayer drawing game for the browser",
"repository": "https://github.com/scribble-rs/scribble.rs",
"keywords": ["game", "multiplayer", "ephemeral"]
}

但是,实际上通过调用来测试按钮https://dashboard.heroku.com/new?template=https%3A%2F%2Fgithub.com%2Fscribble-rs%2Scratch.rs%2Tree%2Develop将导致Heroku运行go-项目的默认生成过程。然而,由于生成的二进制文件不包含运行应用程序所需的资源,应用程序将构建,但在启动时崩溃。

为了解决这个问题,我需要使用docker构建包来运行它。然而,我真的找不到任何关于这个特定用例的文档,尽管它看起来很一般。对于使用应用程序"部署"选项卡上的GitHub连接通过GitHub进行部署,您可以指定heroku.yml,我做到了:https://github.com/scribble-rs/scribble.rs/blob/develop/heroku.yml

build:
docker:
web: Dockerfile

然而,在点击部署的情况下,这个文件似乎被忽略了,而我应该做的是通过app.json显式地指定一个构建包。虽然我发现了一些带有docker构建包的GitHub存储库,但我有点不喜欢这种解决方案,因为我必须信任一些随时可能崩溃或消失的随机存储库。

解决这个问题的最佳方法究竟是什么?

您似乎必须在app.json中指定stack。通过阅读文档,这不是很清楚:https://devcenter.heroku.com/articles/app-json-schema#stack

我已将其设置为:

"stack": "container"

最新更新