如何在docker基础上运行我的Go webapp作为用户nobody?

我不想以root身份在docker容器中运行任何东西。 我想要简约的图像。

我可以在没有任何问题的情况下运行经过编译的Go应用程序。 但是,当我不希望它以root身份运行(我假设它以root身份运行)并在dockerfile中定义USER nobody时,

014/10/25 06:07:10 Error response from daemon: Cannot start container 4822f34e54e20bb580f8cd1d38d7be3c828f28595c2bebad6d827a17b4c2fe21: finalize namespace setup user get supplementary groups Unable to find user nobody 

这是我的dockerfile

 FROM scratch ADD lichtpunkt_go_linux_amd64 /lichtpunkt_go_linux_amd64 ADD web /web USER nobody CMD ["./lichtpunkt_go_linux_amd64"] EXPOSE 3001 

编辑————

事实certificate,划痕是空的,非常空虚。

运行useradd会执行/ bin / sh -c useradd,但没有/ bin / sh。 RUN [“useradd”]将直接执行。 但没有useradd。 ID必须添加rootfs.tar并从零开始构build。

我将使用debian,因为我不会在容器内以root身份运行任何东西,因为…

将容器中的根视为容器外的根

在USER命令之前,添加这一行: ADD passwd.minimal /etc/passwd

在文件passwd.minimal中使用以下行: nobody:x:65534:65534:Nobody:/:

在使用USER命令之前,您仍然需要添加用户。

 FROM scratch ADD lichtpunkt_go_linux_amd64 /lichtpunkt_go_linux_amd64 ADD web /web RUN useradd nobody USER nobody CMD ["./lichtpunkt_go_linux_amd64"] EXPOSE 3001 

事实certificate,划痕是空的,非常空虚。

运行useradd会执行/ bin / sh -c useradd,但没有/ bin / sh。 RUN [“useradd”]将直接执行。 但没有useradd。 ID必须添加rootfs.tar并从零开始构build。

我将使用debian,因为我不会在容器内以root身份运行任何东西,因为…

将容器中的根视为容器外的根

http://opensource.com/business/14/7/docker-security-selinux