docker - Heroku 使用 docker 一键部署 golang 应用
问题描述
我对 heroku 很陌生,我想通过https://devcenter.heroku.com/articles/heroku-button中所述的“部署到 heroku”按钮,让人们可以轻松地将我的应用程序安装在他们自己的实例上。
我现在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
-projects的构建过程。但是,由于生成的二进制文件不包含运行应用程序所需的资源,因此应用程序将构建,但在启动时会崩溃。
为了解决这个问题,我需要使用 docker-buildpack 来运行它。然而,我真的找不到关于这个特定用例的任何文档,尽管它看起来很笼统。要使用应用程序的“部署”选项卡上的 GitHub 连接通过 GitHub 进行部署,您可以指定一个heroku.yml
,我这样做了:https://github.com/scribble-rs/scribble.rs/blob/develop/heroku。 yml
build:
docker:
web: Dockerfile
然而,在点击部署的情况下,这个文件似乎被忽略了,而我应该做的是通过app.json
. 虽然我用 docker-buildpacks 找到了一些 GitHub 存储库,但我有点不喜欢这个解决方案,因为我必须相信一些随机存储库,它可能随时中断或消失。
解决这个问题的最佳方法到底是什么?
解决方案
看来您必须stack
指定app.json
. 阅读文档并不太清楚:https ://devcenter.heroku.com/articles/app-json-schema#stack
我已将其设置为:
"stack": "container"
推荐阅读
- javascript - React/Redux 不渲染 nextState
- javascript - 新的 Chrome 行为:单击的元素保持在原处,并且在加载新内容时文档滚动位置移动
- arrays - 如何使用powershell将行转换为列
- javascript - 验证上传的 Word 模板 Javascript
- python-3.x - 使用 scipy.stats 将 Weibull 分布拟合到数据是否表现不佳?
- python-3.x - 如果使用 python 计算,JWT hs512 签名与 jwt.io 略有不同
- react-native - 反应原生停止 useEffect() 无限循环
- google-apps-script - 如何删除谷歌应用脚本“例外:条件格式规则不能引用不同的工作表。”
- nlp - Word2vec 和 Glove 模型生成的词表对于同一个语料库是不同的
- python - 在 anaconda 环境中更改 python.exe 文件名