我目前正在尝试使用wercker将Go应用程序部署到Heroku。 Heroku希望main.go位于存储库根目录下,但如果可能的话,我希望我的存储库目录看起来像这样。
project/
cmd/
my-server/
main.go
lib1/
lib2/
Procfile
...
理想情况下,我希望Procfile看起来像这样:
web: my-server -port $PORT
我已阅读this article但由于我使用wercker Go框部署到Heroku,我不确定配置此功能的最佳方法是什么。是否已经成功部署了这样的应用程序?
答案 0 :(得分:2)
您正在为Go项目使用文件结构,这使您无法使用godep
进行构建过程,从而使速度变慢。
鉴于此,您需要创建一个.godir
,它指定您的流程所在的模块名称。
使用以下内容创建.godir
文件:
project/cmd/my-server
并按原样保存Procfile:
web: my-server -port $PORT
我甚至不需要提到你需要使用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
答案 1 :(得分:0)
对我有用的是
godep save ./cmd/...
然后将vendor文件夹中的所有内容添加到repo中。