root として docker コンテナーで何も実行したくありません。そして、ミニマルなイメージが欲しい。
コンパイルした Go アプリをスクラッチ イメージで問題なく実行できます。しかし、ルートとして実行したくない場合(ルートとして実行していると仮定します)、取得した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
編集 - - - - - -
スクラッチが空であることがわかりました。非常に空です。
RUN useradd は /bin/sh -c useradd を実行しますが、 /bin/sh はありません。RUN ["useradd"] は直接実行します。しかし、useradd はありません。id は rootfs.tar を追加してゼロからビルドする必要があります。
コンテナ内でルートとして何も実行しないので、debianを使用します...