【问题标题】:Deploying Revel (Golang) Using Dokku使用 Dokku 部署 Revel (Golang)
【发布时间】:2014-07-25 10:35:35
【问题描述】:

有没有人尝试过使用 Dokku 部署 Revel 应用程序?

我尝试了“https://www.digitalocean.com/community/tutorials/how-to-use-the-dokku-one-click-digitalocean-image-to-run-a-go-app”并成功部署。

但是,当我尝试一个新的 Revel 应用程序时,它给了我这个错误

remote: mv: cannot stat `/build/app/.heroku/g/bin/*': No such file or directory

这是我创建的 .godir:

myappname

这是 Procfile:

myappname

我做错了什么?

谢谢

【问题讨论】:

    标签: go revel dokku


    【解决方案1】:

    由于 Revel 是一个 Web 应用(接收传入的 HTTP 流量),您需要在您的 Procfile 中声明一个 web 进程类型,即:

    web: myappname ## Procfile requires a Unix process declaration
    

    这告诉 Dokku 运行什么命令来启动服务器上的 Web 进程 - 在本例中是 myappname.go 在您的项目根目录中。
    在 Procfile 中去掉 .go 文件扩展名。

    Dokku 是一个“Docker 驱动的 mini-Heroku”,因此 Heroku 的支持文档是相关的:

    unix 进程模型是用于运行服务器端程序的简单而强大的抽象。应用于 Web 应用程序,流程模型为我们提供了一种独特的方式来考虑划分工作负载并随着时间的推移进行扩展。 Heroku Cedar 堆栈为 web、worker 和所有其他类型的 dynos 使用流程模型。
    -- 来自Process Types and the Procfile - Heroku Dev Center

    请注意,Heroku/Dokku 的标准 Go Buildpack 需要 Godeps 目录,或者包含 .godir 文件的已弃用方法。

    【讨论】:

      【解决方案2】:

      您需要使用 revel buildpack 而不是 Go 那个。 buildpack 将为您生成Procfile

      请务必:

      • 在您的项目中添加一个 .env 文件:BUILDPACK_URL=https://github.com/revel/heroku-buildpack-go-revel
      • 添加一个 .godir 文件,其中包含用于运行应用程序的参数,例如github.com/yourcompany/yourrepo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-15
        相关资源
        最近更新 更多