15

ホストから実行するcomposer installと、ローカルの composer キャッシュにヒットします。

  - Installing deft/iso3166-utility (1.0.0)
    Loading from cache

ただし、Dockerfile にコンテナーを構築する場合:

RUN composer install -n -o --no-dev

私はすべてのものをダウンロードします。

  - Installing deft/iso3166-utility (1.0.0)
    Downloading: 100%         

それは当然のことですが、私はそれを避けたいと思っています。再構築した場合でも、すべてを再度ダウンロードします。

他の docker プロジェクトでも再共有できる、composer 用のユニバーサル キャッシュが必要です。

これを調べたところ、Dockerfile でボリュームを定義する方法が見つかりました。

ENV COMPOSER_HOME=/var/composer
VOLUME /var/composer

私はそれを自分のファイルに追加しDockerfile、ファイルを一度だけダウンロードし、その後キャッシュにヒットすることを期待していました.

それでも、たとえばフラグをcomposer削除してを再実行すると、ビルド時にキャッシュにヒットすることが予想されましたが、それでもベンダーを再度ダウンロードします。-odocker build .

docker コンテナ内にデータキャッシュを持つために、ボリュームはどのように機能するはずですか?

4

3 に答える 3