docker 容器上编译 go 程序提示找不到文件问题

 更新时间:2018年05月23日 15:36:06   作者:_菜鸟的下划线_  
这篇文章主要介绍了docker 容器上编译 go 程序无法运行提示找不到文件问题,解决方法也很简单,感兴趣的朋友跟随脚本之家小编一起看看吧

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容器中没有vi/ps等命令问题

    Docker容器中没有vi/ps等命令问题

    这篇文章主要介绍了Docker容器中没有vi/ps等命令问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 详解Docker修改容器端口映射的方法

    详解Docker修改容器端口映射的方法

    这篇文章主要介绍了详解Docker修改容器端口映射的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2006-11-11
  • Docker-swarm快速搭建redis集群的方法步骤

    Docker-swarm快速搭建redis集群的方法步骤

    本文主要介绍了Docker-swarm快速搭建redis集群的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • docker-compose启动springboot项目连接mysql问题

    docker-compose启动springboot项目连接mysql问题

    这篇文章主要介绍了docker-compose启动springboot项目连接mysql问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 详解docker容器间通信的一种方法

    详解docker容器间通信的一种方法

    本篇文章主要介绍了详解docker容器间通信的一种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • mac 中docker安装mysql的图文教程

    mac 中docker安装mysql的图文教程

    今天在Docker中安装了MySQL ,是自己打的docker包.首先新建Dockerfile,新建Dockerfile后执行build命令,具体详情在本教程中给大家介绍的非常详细,感兴趣的朋友参考下
    2016-11-11
  • Intellij IDEA快速实现Docker镜像部署的方法步骤

    Intellij IDEA快速实现Docker镜像部署的方法步骤

    本文主要介绍了Intellij IDEA快速实现Docker镜像部署的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker将镜像文件发布到阿里云的详细过程

    Docker将镜像文件发布到阿里云的详细过程

    这篇文章主要介绍了Docker将镜像文件发布到阿里云的操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Docker使用java项目工程的部署

    Docker使用java项目工程的部署

    随着容器化技术的广泛应用,Docker成为了一种非常流行的容器化解决方案,本文主要介绍了Docker使用java项目工程的部署,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • docker中容器运行时如何将目录和宿主机进行挂载

    docker中容器运行时如何将目录和宿主机进行挂载

    对于一个已经运行的容器,如果后续需要新挂载一个目录怎么办?下面这篇文章主要给大家介绍了关于docker中容器运行时如何将目录和宿主机进行挂载的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05

最新评论