用户:目前没有实施在Linux / amd64与golang使用docker从头开始

我已经使用这个教程编译我的应用程序运行在从头开始的容器上运行。

我的代码使用os/user user.Current() 。 当我使用博客文章中的技术时,运行容器时出现以下错误:

 user: Current not implemented on linux/amd64 

详细说明:

这是用来编译的命令:

 CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . 

这是用于创build图像( scratch )的Dockerfile:

 FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / ENTRYPOINT ["/main"] 

这是用来运行容器的命令:

 sudo docker run -it -v /var/run/docker.sock:/var/run/docker.sock --rm 813 

有没有人遇到过这个? 任何解决scheme

Linux上的os/user信息包的用户信息查询是使用getpwuid_r系统调用实现的,因此在编译CGO_ENABLED=0CGO_ENABLED=0

在Go中实现/etc/passwdparsing器听起来很简单, getpwuid函数可以从不同的来源检索用户信息。 例如,在某些系统上,它可能使用LDAP目录。 所以获得平价的唯一方法是委托给C库。