2016-03-14 12 views
10

Sto provando a distribuire un'app Go su Heroku, sto usando i Godeps per la gestione delle dipendenze come suggerito dai loro documenti. Ma quando I git push heroku master viene visualizzato il seguente errore che indica che il file sasl.go non esiste.Errore nella dipendenza da mgo durante la distribuzione di go app su Heroku

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' 

Qualcuno può aiutarmi con questo problema?

Grazie.

+0

La versione venduta di 'gopkg.in/mgo.v2' è stata aggiornata? – elithrar

risposta

1

Utilizzi godep save ./... nel progetto?

Se sì, eliminare i Godep e vendor directory e tenta di utilizzare godep save senza ./....

Io faccio questo e lavoro per me.

+0

Il problema è che heroku esegue automaticamente 'godep save./...' – nkobber

+0

Funziona per me – Tineo

0

Errore dice sasl/sasl.h mancante ma non sasl.go. Il file di intestazione sasl.h fa parte del pacchetto libsasl2-dev che non è installato su heroku e non conosco il modo semplice per installarlo. A mio avviso, puoi provare a trovare le intestazioni sasl sulla tua macchina locale (molto probabilmente/usr/include/sasl) e copiare su vendor/include/sasl nella tua app go source locale. Poi renderli visibili per CGO utilizzando Heroku config Vars facendo

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

in consolle Heroku, e che git push. Inoltre si può cercare libsasl2-dev buildpack per Heroku e tenta di utilizzare due buildpacks per la tua app con qualcosa come

heroku buildpacks:add heroku/some_libsasl2-dev