2016-03-14 158 views
10

我想部署一個Go應用程序到Heroku,我正在使用godeps進行依賴關係管理,因爲他們的文檔建議。 但是,當我git push heroku master我得到以下錯誤,告訴文件sasl.go不存在。當部署去Heroku的應用程序時mgo依賴錯誤

remote: # github.com/grsouza/feeng-api/vendor/gopkg.in/mgo.v2/internal/sasl 
remote: vendor/gopkg.in/mgo.v2/internal/sasl/sasl.go:15:24: fatal error: sasl/sasl.h: No such file or directory 
remote: // #include <sasl/sasl.h> 
remote:      ^
remote: compilation terminated. 
remote: github.com/grsouza/feeng-api/vendor/github.com/onsi/gomega 
remote: 
remote: !  Push rejected, failed to compile Go app 
remote: 
remote: Verifying deploy.... 
remote: 
remote: ! Push rejected to limitless-ridge-36512. 
remote: 
To https://git.heroku.com/limitless-ridge-36512.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://git.heroku.com/limitless-ridge-36512.git' 

任何人都可以幫我解決這個問題嗎?

謝謝。

+0

更新了'gopkg.in/mgo.v2'的商品版嗎? – elithrar

回答

1

您是否在項目中使用godep save ./...

如果是,請刪除Godepvendor目錄,並嘗試使用godep save,而不使用./...

我這樣做,爲我工作。

+0

問題是,heroku自動運行'godep保存。/ ...' – nkobber

+0

它適用於我 – Tineo

0

錯誤告訴sasl/sasl.h丟失,但不是sasl.go. sasl.h頭文件是libsasl2-dev軟件包的一部分,它並未安裝在heroku上,我不知道安裝它的簡單方法。在我看來,您可以嘗試在本地計算機上找到sasl標頭(很可能是/ usr/include/sasl),並將其複製到您本地的應用程序源中的vendor/include/sasl。然後使他們可見的CGO使用heroku配置變量做

heroku config:set CGO_CFLAGS= -I/app/code/vendor/include/sasl 

在heroku控制檯,而不是git推。 你也可以找libsasl2-dev的buildpack對Heroku的,並嘗試使用兩個buildpacks爲您的應用程序的東西,如

heroku buildpacks:add heroku/some_libsasl2-dev 
相關問題