パッケージマネージャーを含まないDockerイメージ

パッケージマネージャーを含まないDockerイメージ

私は通常、Docker コンテナを、Docker ホストに何もインストールする必要のない、小さな「環境」を運ぶ実行可能プロセスであると考えています。たとえば、Java jar と JRE などです。

jre をインストールするには、まず ubuntu ベース ボックスから始めて、aptitude を使用してインストールします。ただし、アプリの依存関係 (この場合は jre) を構成するためにパッケージ マネージャーが実質的に必要になりますが、アプリを実行するために厳密に必要であるとは考えられません。

これによって、実用的な関心事というにはあまりにも深いところまで行き過ぎた疑問が生じますが、それでも知的好奇心は湧きます。ビルドされたイメージにパッケージ マネージャーを含めずに、依存関係を Docker イメージにインストールすることは可能でしょうか?

chroot でこれを実現する方法を調べてみると、困難または不可能であるように見えます。一見すると、この課題は解決できそうです (たとえば、Gradle または Maven を使用して Java アプリケーションをビルドする場合、公開したプログラムに Gradle または Maven バイナリを含める必要はありません)。そのため、なぜ簡単な解決策がないように見えるのかについても知りたいです。依存関係を Docker イメージ (または chroot) にインストールする問題に取り組んでいる人はいますか? そうでない場合、その理由は何ですか?

(ソリューションここそして解決策2ここパッケージ マネージャーを chroot にインストールする必要がありますが、Docker イメージからパッケージ マネージャーを取得する方法という私の質問には答えていません。2 番目のソリューション 1 はソースからのビルドを扱っています (だと思います) が、これも私が探しているものではありません。

関連情報