docker 容器上编译 go 程序提示找不到文件问题
程序员文章站
2022-05-12 11:19:37
dockerfile
[root@szb-l0010091 zxg]# cat dockerfile
from scratch
copy webdemo...
dockerfile
[root@szb-l0010091 zxg]# cat dockerfile from scratch copy webdemo / expose 9999 cmd ["/webdemo"]
docker run 报错信息:
[root@zxg]# docker run --rm -it -p 9999:9999 web:1.0 panic: standard_init_linux.go:178: exec user process caused "no such file or directory" [recovered] panic: standard_init_linux.go:178: exec user process caused "no such file or directory" goroutine 1 [running, locked to thread]: panic(0x6f2340, 0xc420132620) /usr/lib/golang/src/runtime/panic.go:500 +0x1a1 github.com/urfave/cli.handleaction.func1(0xc420091748) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/urfave/cli/app.go:478 +0x247 panic(0x6f2340, 0xc420132620) /usr/lib/golang/src/runtime/panic.go:458 +0x243 github.com/opencontainers/runc/libcontainer.(*linuxfactory).startinitialization.func1(0xc420091198, 0xc42001e050, 0xc420091238) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/factory_linux.go:259 +0x18f github.com/opencontainers/runc/libcontainer.(*linuxfactory).startinitialization(0xc42004efa0, 0xaab9c0, 0xc420132620) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/factory_linux.go:277 +0x353 main.glob..func8(0xc4200ba3c0, 0x0, 0x0) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/main_unix.go:26 +0x66 reflect.value.call(0x6dd0c0, 0x768ec8, 0x13, 0x73b509, 0x4, 0xc420091708, 0x1, 0x1, 0x4d17a8, 0x731360, ...) /usr/lib/golang/src/reflect/value.go:434 +0x5c8 reflect.value.call(0x6dd0c0, 0x768ec8, 0x13, 0xc420091708, 0x1, 0x1, 0xac1700, 0xc4200916e8, 0x4da786) /usr/lib/golang/src/reflect/value.go:302 +0xa4 github.com/urfave/cli.handleaction(0x6dd0c0, 0x768ec8, 0xc4200ba3c0, 0x0, 0x0) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/urfave/cli/app.go:487 +0x1e0 github.com/urfave/cli.command.run(0x73b6d5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74cc8a, 0x51, 0x0, ...) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/urfave/cli/command.go:191 +0xc3b github.com/urfave/cli.(*app).run(0xc4200cc000, 0xc420064060, 0x2, 0x2, 0x0, 0x0) /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/godeps/_workspace/src/github.com/urfave/cli/app.go:240 +0x611 main.main() /builddir/build/build/docker-1398f249013601ab999d286910664d70fd1329a2/runc-f5721697226d42d9efeea37fa3a7eb1d208fa1a2/main.go:137 +0xbd6
解决办法:增加-tags netgo选项编译
goos=linux goarch=amd64 go build -tags netgo -o rollingupdate${tag} main.go
总结
以上所述是小编给大家介绍的好的docker 容器上编译 go 程序无法运行提示找不到文件问题,希望对大家有所帮助
上一篇: 海信电视怎么看凤凰台直播?三大奇招
下一篇: Docker多阶段镜像构建的实现