Heroku 一键部署 golang 应用 docker
Heroku one-click-deploy of golang application with docker
我是 heroku 的新手,我想让人们通过 "Deploy to 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%2Fscribble.rs%2Ftree%2Fdevelop 实际测试按钮将导致 Heroku 运行 为 go
项目启用默认构建过程。但是,由于生成的二进制文件不包含 运行 应用程序所需的资源,应用程序将构建,但在启动时崩溃。
为了解决这个问题,我需要用 docker-buildpack 代替 运行。但是,我真的找不到关于这个特定用例的任何文档,尽管它看起来很笼统。要通过 GitHub 使用应用程序 "Deploy" 选项卡上的 GitHub 连接进行部署,您可以指定 heroku.yml
,我这样做了:https://github.com/scribble-rs/scribble.rs/blob/develop/heroku.yml
build:
docker:
web: Dockerfile
但是,在单击部署的情况下,这个文件似乎被忽略了,我应该做的是通过 app.json
明确指定一个构建包。虽然我发现了一些 GitHub 带有 docker-buildpacks 的存储库,但我有点不喜欢这个解决方案,因为我不得不相信一些随机的存储库,它们可能会随时损坏或消失。
解决这个问题的最佳方法到底是什么?
看来您必须在 app.json
中指定 stack
。通过阅读文档,这不是很清楚:https://devcenter.heroku.com/articles/app-json-schema#stack
我已将其设置为:
"stack": "container"
我是 heroku 的新手,我想让人们通过 "Deploy to 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%2Fscribble.rs%2Ftree%2Fdevelop 实际测试按钮将导致 Heroku 运行 为 go
项目启用默认构建过程。但是,由于生成的二进制文件不包含 运行 应用程序所需的资源,应用程序将构建,但在启动时崩溃。
为了解决这个问题,我需要用 docker-buildpack 代替 运行。但是,我真的找不到关于这个特定用例的任何文档,尽管它看起来很笼统。要通过 GitHub 使用应用程序 "Deploy" 选项卡上的 GitHub 连接进行部署,您可以指定 heroku.yml
,我这样做了:https://github.com/scribble-rs/scribble.rs/blob/develop/heroku.yml
build:
docker:
web: Dockerfile
但是,在单击部署的情况下,这个文件似乎被忽略了,我应该做的是通过 app.json
明确指定一个构建包。虽然我发现了一些 GitHub 带有 docker-buildpacks 的存储库,但我有点不喜欢这个解决方案,因为我不得不相信一些随机的存储库,它们可能会随时损坏或消失。
解决这个问题的最佳方法到底是什么?
看来您必须在 app.json
中指定 stack
。通过阅读文档,这不是很清楚:https://devcenter.heroku.com/articles/app-json-schema#stack
我已将其设置为:
"stack": "container"