为了账号安全,请及时绑定邮箱和手机立即绑定

使用本地包在 Heroku 上运行应用程序

使用本地包在 Heroku 上运行应用程序

Go
三国纷争 2021-08-16 20:19:40
我正在尝试使用Go Buildpack在 Heroku 上放置一个 Go 应用程序,当它是基本的东西时这很好,但是一旦我做一个本地包,它就不会编译。这是一个示例设置:结构+ship  +foo      foo.go  main.gomain.gopackage mainimport (  "os"  "fmt"  "net/http"  "ship/foo")func main() {  foo.Bar()  port := os.Getenv("PORT")  http.HandleFunc("/", root)  http.ListenAndServe(":" + port, nil)}func root(w http.ResponseWriter, r *http.Request) {  fmt.Fprint(w, "Aloha, world!")}foo.gopackage foofunc Bar() {}推git push heroku masterInitializing repository, done.Counting objects: 20, done.Delta compression using up to 8 threads.Compressing objects: 100% (13/13), done.Writing objects: 100% (20/20), 1.53 MiB | 586.00 KiB/s, done.Total 20 (delta 2), reused 0 (delta 0)-----> Fetching custom git buildpack... done-----> Go app detected-----> Installing go1.3.1... done-----> Running: godep go install -tags heroku ./...main.go:7:3: cannot find package "ship/foo" in any of:    /app/tmp/cache/go1.3.1/go/src/pkg/ship/foo (from $GOROOT)    /tmp/build_4b92e51c-3959-4ddb-8eff-90d72da70729/.heroku/g/src/_/Users/Daryl/Go/src/ship/Godeps/_workspace/src/ship/foo (from $GOPATH)    /tmp/build_4b92e51c-3959-4ddb-8eff-90d72da70729/.heroku/g/src/ship/foogodep: go exit status 1 !     Push rejected, failed to compile Go app知道这里发生了什么以及如何去做吗?
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我有一个对我有用的解决方案,虽然我不喜欢它,但希望这不是正确的方法!

我正在使用供应商。本地和 TravisCI 都能够构建我的应用程序,但 TravisCI 无法将其部署到 Heroku,因为 Heroku 也无法找到本地包。我最终做的是通过供应商获取本地包:

govendor fetch +local

一旦我再次提交,TravisCI 构建并部署到 Heroku,我的应用程序就可以运行了。

我不喜欢这个解决方案的原因是我现在有重复的代码!我的本地子包可以在 / 以及供应商中找到:/vendor/


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信