公式 Gentoo Dockerfile には次の行が含まれています:
RUN sed -e 's/#rc_sys=""/rc_sys="docker"/g' -i /etc/rc.conf
現時点では、Gentooの デフォルトの初期化はOpenRC です。
DockerイメージをCMD /sbin/init
で実行すると、OpenRCタイプのコマンドを発行すると応答が返されます
You are attempting to run an openrc service on a system which openrc did not boot.
...そして、実際、strings /sbin/init | grep -q "sysvinit"
はSYSVINIT
を与えます
ただし、上記のリンクからも、OpenRCはsysvinitに基づいているため、正しい可能性があります。
DockerイメージをCMD /sbin/openrc
で実行すると、イメージが起動せず、依存関係エラーが発生します。
OpenRCで複数のプロセスを実行したい場合、/ etc/rc.confを「」(特別なことは何もありません)に戻す必要がありますか?
「docker」RCシステムについて何か特別なことはありますか?おそらく、initシステムがないと想定し、代わりに1つの実行中のプロセスのみを想定していますか?
/ etc/rc.confの「docker」RCは、使用されているinitシステムに関して何を意味しますか?
_/etc/init.d/hostname
_などのboot
ランレベル初期化スクリプトの多くを見ると、次のようなブロックが表示されます。
depend(){ キーワード-docker -lxc -prefix -systemd-nspawn }
これは、これらのシステムタイプのいずれでもinitスクリプトを自動的に使用してはならないことを示しています(keyword
の詳細については、マンページopenrc-run(8)
を参照してください)。
スクリプトは引き続き手動で開始できますが、自動init依存関係の構築中には考慮されません。スクリプトがランレベルに明示的に追加された場合の動作を覚えていません。