登录
首页 >  Golang >  Go问答

使用 Docker 快速部署 Golang 应用到 Heroku

来源:stackoverflow

时间:2024-02-27 12:54:24 108浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《使用 Docker 快速部署 Golang 应用到 Heroku》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我对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%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 存储库,但我有点不喜欢这个解决方案,因为我必须信任一些可能随时损坏或消失的随机存储库。

解决这个问题的最佳方法到底是什么?


解决方案


看来您必须在 app.json 内指定 stack。通过阅读文档,这一点还不是很清楚:https://devcenter.heroku.com/articles/app-json-schema#stack

我已将其设置为:

"stack": "container"

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>