最近--no-cache-dir
、Dockerファイルで使用されているのを見ました。私は以前にそのフラグを見たことがなく、ヘルプはそれを説明していません:
--no-cache-dir Disable the cache.
- 質問:何がキャッシュされますか?
- 質問:キャッシュは何に使用されますか?
- 質問:なぜ無効にしたいのですか?
pip no-cache-dir
、これは今、最初の結果です。
最近--no-cache-dir
、Dockerファイルで使用されているのを見ました。私は以前にそのフラグを見たことがなく、ヘルプはそれを説明していません:
--no-cache-dir Disable the cache.
pip no-cache-dir
、これは今、最初の結果です。
回答:
.whl
pipを使用してインストールするモジュールのインストールファイル(など)を保存します.tar.gz
など)を保存して、期限切れでない場合に再ダウンロードしないようにするpip install
に予期しない設定で
実行したexport PYCURL_SSL_LIBRARY=nss
、pip install pycurl
export PYCURL_SSL_LIBRARY=openssl
したいpip install pycurl --compile --no-cache-dir
ドキュメントへのリンク
https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
--no-cache-dir
、使用しない理由はありません、正しいですか?
--no-cache-dir
Dockerイメージをビルドするときに使用するのには十分な理由があると思います。Dockerイメージでは通常キャッシュは役に立たないため、キャッシュを無効にすることでイメージサイズを確実に縮小できます。
ENV PIP_NO_CACHE_DIR=1
Python 3.6.10以降の画像のdockerで使用できます
pipキャッシュを無効にするもう1つの理由-まだ存在しないユーザーとしてpipを実行すると、そのホームディレクトリは作成されますが、rootが所有します。
これは、Amazon AMIをchrootで構築するときに発生します。pipは、ビルダーマシンに存在するユーザーとして実行されますが、AMIが構築されているchroot jailでは実行されません。特定のユーザーが.sshディレクトリを読み取れないため、作成されたばかりのユーザーに対してsshを実行できないため、これは問題です。
しかし、pipが存在しないユーザーとして実行される他の理由は考えられないので、これは非常にエッジケースです。
DockerFileにPythonの依存関係がある場合は、プライベートレジストリ/アーティファクトリまたはデプロイメントサービスにサイズ制限があるため、Dockerイメージのサイズを小さくしてください。
--no-cache-dir
オプションを使用しない場合、一部のpipパッケージのインストールで許可エラーが発生します。
Building wheels for collected packages: pyyaml, bottleneck, nvidia-ml-py3
WARNING: Building wheel for pyyaml failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/b1'
WARNING: Building wheel for bottleneck failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/92'
WARNING: Building wheel for nvidia-ml-py3 failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/7f'
chown /.cache
フォルダは何らかの理由で役に立ちませんでしたが、--no-cache-dir
それでうまくいきます。