Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku上带有本地软件包的Go应用程序_Heroku_Go_Buildpack - Fatal编程技术网

Heroku上带有本地软件包的Go应用程序

Heroku上带有本地软件包的Go应用程序,heroku,go,buildpack,Heroku,Go,Buildpack,我正在尝试使用将Go应用程序放在Heroku上,当它是一些基本的东西时,这是很好的,但是一旦我做了一个本地包,它就不会编译。下面是一个示例设置: 结构 梅因,加油 foo.go 推 你知道这里发生了什么,怎么做吗?这只是给在go 1.6中遇到这个问题的人的一个提示。Godep已改为与Heroku一起使用供应商文件夹,因此您需要根据以下文档重置Godep以使用供应商: Heroku在此处还提供了升级信息: 我有一个适合我的解决方案,尽管我不喜欢它,希望它不是正确的方法 我正在使用供应商。本地和T

我正在尝试使用将Go应用程序放在Heroku上,当它是一些基本的东西时,这是很好的,但是一旦我做了一个本地包,它就不会编译。下面是一个示例设置:

结构 梅因,加油 foo.go 推
你知道这里发生了什么,怎么做吗?

这只是给在go 1.6中遇到这个问题的人的一个提示。Godep已改为与Heroku一起使用供应商文件夹,因此您需要根据以下文档重置Godep以使用供应商:

Heroku在此处还提供了升级信息:


我有一个适合我的解决方案,尽管我不喜欢它,希望它不是正确的方法

我正在使用供应商。本地和TravisCI都可以构建我的应用程序,但TravisCI无法将其部署到Heroku,因为Heroku在查找本地包时也遇到了问题。我最后做的是从供应商那里获取本地包:

govendor fetch +local
一旦我再次承诺,TravisCI构建并部署到Heroku,我的应用程序就开始工作了


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

中找到解决方案吗?
package main

import (
  "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!")
}
package foo

func Bar() {}
git push heroku master
Initializing 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/foo
godep: go exit status 1

 !     Push rejected, failed to compile Go app
govendor fetch +local