我正在尝试将Go应用部署到Heroku,我正在使用godep进行依赖管理,正如他们的文档所建议的那样。但是当我执行git push heroku master时,我得到了下面的错误,告诉我文件sasl.go不存在。
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'有人能帮我解决这个问题吗?
谢谢。
发布于 2016-03-16 04:55:29
你在你的项目中使用godep save ./...吗?
如果是,请删除Godep和vendor目录,并尝试使用不带./...的godep save。
我做这件事,为我自己工作。
发布于 2016-04-21 08:37:14
错误提示缺少sasl/sasl.h,但不是sasl.go。sasl.h头文件是libsasl2-dev包的一部分,它没有安装在heroku上,我不知道安装它的简单方法。在我看来,你可以试着在你的本地机器上找到sasl头文件(最有可能是/usr/include/sasl),然后复制到你本地go应用源码中的供应商/include/sasl。然后使用heroku config vars使它们对CGO可见
heroku config:set CGO_CFLAGS= -I/app/code/vendor/include/sasl在heroku控制台,然后git推送。您还可以查找libsasl2-dev buildpack for heroku,并尝试为您的应用程序使用两个buildpack,如下所示
heroku buildpacks:add heroku/some_libsasl2-dev发布于 2016-09-30 01:19:06
我终于找到了一个解决方案(来自https://github.com/go-mgo/mgo/issues/220#issuecomment-212658192):
要创建包含所有dependencies)
godep save ./...。重新运行godep save,不带./...(这将删除未使用的文件)https://stackoverflow.com/questions/35992153
复制相似问题