为了账号安全,请及时绑定邮箱和手机立即绑定

golang 间接要求导致包 golang.org/x/sys/unix 的云函数构建出现问题

golang 间接要求导致包 golang.org/x/sys/unix 的云函数构建出现问题

Go
眼眸繁星 2023-02-21 16:31:57
我在部署云功能时遇到问题,因为我的一个包间接使用golang.org/x/sys使用此版本时,CF 构建通过以上任何一项似乎都失败了# golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4但是在每次运行之后go get -u ./...我们都会获得更新的版本并且 CF 构建失败并出现错误2022-10-02 09:03:07.208 CESTStep #1 - "build": # cloudfunctionissue/vendor/golang.org/x/sys/unix2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall.go:83:16: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall_linux.go:2255:9: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall_unix.go:118:7: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/sysvshm_unix.go:33:7: undefined: unsafe.Slice似乎这个文档没有为我解释足够的问题https://cloud.google.com/functions/docs/writing/specifying-dependencies-go#using_a_vendor_directory
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

谢谢您的回答,是的,我同意您的看法,我的问题来自较新版本的 go。但是,我们通过仅更新直接导入的包并跳过间接更新找到了解决此问题的方法。


#!/bin/sh  

module=$(go list -f '{{.Module.Path}}' .)


go mod tidy

go get -d -t $(go mod graph | grep "^$module" | cut -d ' ' -f 2 | sed 's/@.*/@upgrade/g')

go mod tidy

go mod download

将此脚本应用于 dockerfile 后,我们正在毫无问题地构建我们的 CF。


查看完整回答
反对 回复 2023-02-21
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

由于运行时,您收到此错误。unsafe.Slice是在 引入的go v1.17,目前支持云函数v1.16。您的代码以某种方式调用了syscall.go:83.16和其他包。因此,您遇到了以上错误。尝试还原或确定是什么在调用这些包。



查看完整回答
反对 回复 2023-02-21
  • 2 回答
  • 0 关注
  • 706 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信