Heroku Go 应用程序崩溃,找不到版本“GLIBC_2.32”,bin/main 需要
从现在开始,我们要努力学习啦!今天我给大家带来《Heroku Go 应用程序崩溃,找不到版本“GLIBC_2.32”,bin/main 需要》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
问题内容所以我有一个非常简单的网络应用程序,现在只提供一个 html 文件,我的代码可以在我的笔记本电脑上运行,但不能在 heroku 的服务器上运行。编译时没有错误,但是当我尝试访问该网站时。应用程序崩溃。
未找到版本“GLIBC_2.32”
我检查了日志,它说它需要 'GLIBC_2.32'
,但未找到。我对 Heroku 和制作网络应用程序非常陌生,我不知道如何安装该依赖项
解决方案
尝试不使用 cgo 进行构建:
CGO_ENABLED=0 go build
cgo_enabled=0 禁用调用 c 代码(导入“c”)。这意味着标准库或第三方库中的某些功能可能不可用,或者改用纯 go 实现。这对于您的应用程序的功能和性能意味着什么,实际上取决于您的应用程序的用途。我建议您在部署到生产之前运行测试;-) 在大多数情况下它会工作得很好。
有关 cgo_enabled 的更多信息:
- Why is compiling with CGO_ENABLED=0 slower?
我在使用多步docker时遇到了同样的问题。首先在构建器 docker 中构建应用程序,然后将二进制文件复制到新容器。因为原始的 golang 1.19 已更改,所以我的预构建二进制文件在第二个容器中崩溃,并出现错误 glibc_2.32 not found
我的情况设置 cgo_enabled 不是一个选项。
第一个解决方法是在正在运行的容器中编译应用程序
第二个解决方法,用于查找基础 golang 1.19 docker 映像的先前版本。
两者都为我工作。
好了,本文到此结束,带大家了解了《Heroku Go 应用程序崩溃,找不到版本“GLIBC_2.32”,bin/main 需要》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341