我目前正在尝试使用 wercker 将 Go 应用程序部署到 Heroku。Heroku 期望 main.go 位于存储库根目录中,但如果可能,我希望我的存储库目录看起来像这样。
project/
cmd/
my-server/
main.go
lib1/
lib2/
Procfile
...
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望 Procfile 看起来像这样:
web: my-server -port $PORT
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这篇文章,但由于我使用 wercker Go box 部署到 Heroku,我不确定什么是配置它的最佳方法。有人成功部署过这样的应用程序吗?
您正在为 Go 项目使用文件结构,这不允许您godep用于构建过程,从而使其速度变慢。
鉴于此,您需要创建一个.godir,它指定您的进程所在的模块名称。
创建一个.godir包含以下内容的文件:
project/cmd/my-server
Run Code Online (Sandbox Code Playgroud)
并保持您的 Procfile 原样:
web: my-server -port $PORT
Run Code Online (Sandbox Code Playgroud)
我什至不需要提及您需要使用 Go 自定义 buildpack:https : //github.com/kr/heroku-buildpack-go.git
使用此.godir文件,您将能够推送和部署您的应用程序。
有关godep使用自定义 buildpack 的更多信息,请查看本指南 [1]。
[1] http://mmcgrana.github.io/2012/09/getting-started-with-go-on-heroku.html