3

我目前正在尝试使用 wercker 将 Go 应用程序部署到 Heroku。Heroku 希望 main.go 位于存储库根目录中,但如果可能的话,我希望我的存储库目录看起来像这样。

project/
  cmd/
    my-server/
      main.go
  lib1/
  lib2/
  Procfile
  ...

理想情况下,我希望 Procfile 看起来像这样:

web: my-server -port $PORT

我已经阅读了这篇文章,但由于我使用 wercker Go box 部署到 Heroku,我不确定配置它的最佳方法是什么。有人成功部署过这样的应用程序吗?

4

2 回答 2

5

您正在为您的 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

于 2014-11-28T15:50:00.033 回答
0

对我有用的是

godep save ./cmd/...

然后将 vendor 文件夹中的所有内容添加到 repo 中。

于 2016-12-23T01:38:47.630 回答