1. ホーム

[解決済み】Dockerイメージのビルドコンテキストが非常に大きい

2022-04-04 22:03:30

質問

私はDockerについて学ぶために、自分のdockerfileを整理するために、ホストマシン上にいくつかの異なるディレクトリを作成しました。 先ほど実行した私のDockerfileは次のようなものです。

FROM crystal/centos
MAINTAINER crystal

ADD ./rpms/test.rpm ./rpms/ 
RUN yum -y --nogpgcheck localinstall /rpms/test.rpm 

私の実際の回転数は1GBしかありません。 しかし、私が sudo docker build -t="crystal/test" . Docker デーモンにビルドコンテキストを送信すると 3.5 GB になります。 Dockerイメージのビルドを続ける中で、私の知らない何かがあるのでしょうか?ホストマシンの他のディレクトリにさらにイメージをビルドすると、私のメモリが蓄積されるのでしょうか?

解決方法は?

DockerクライアントはDockerデーモンに"ビルドコンテキスト"全体を送信します。このビルド・コンテキストは(デフォルトでは)Dockerデーモンが作成したディレクトリ全体です。 Dockerfile は、その中にある(だから、全体の rpms のツリー)。

を設定することができます。 .dockerignore ファイルを使用すると、Dockerが一部のファイルを無視するようになります。実験してみるといいかもしれません。

あるいは rpms フォルダの1つ上のディレクトリに Dockerfile で、シンボリックリンクのみ test.rpmDockerfile のディレクトリに移動します。


よくあるのが を追加します。 .git フォルダを .dockerignore このコメントで、一部のユーザーで150MB -> 5GBの差が出た原因です。