我在部署云功能时遇到问题,因为我的一个包间接使用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。
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
由于运行时,您收到此错误。unsafe.Slice是在 引入的go v1.17
,目前支持云函数v1.16
。您的代码以某种方式调用了syscall.go:83.16和其他包。因此,您遇到了以上错误。尝试还原或确定是什么在调用这些包。
- 2 回答
- 0 关注
- 706 浏览
添加回答
举报
0/150
提交
取消