Dockerで「Failed to fetch」エラーが出たときに試すこと

問題の現象

Docker や docker-compose を使用している時、Dockerfile の内容を更新したので build をし直そうとしたら、apt-get で下記のようなエラーが出ることがありました。

E: Failed to fetch http://deb.debian.org/debian/pool/main/o/openldap/libldap2-dev_2.4.47+dfsg-3+deb10u1_amd64.deb  404  Not Found [IP: 151.101.110.133 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

※上のエラーは、PHP の ldap モジュールを追加しようとした時の例です。

対応方法

build をした時に、イメージの以前のキャッシュが残っていて失敗したようです。

次のように --no-cache オプションを付けて実行することで、エラーが出ずビルドに成功しました。

Docker の場合。

docker build --no-cache

docker-compose の場合。

docker-compose build --no-cache

参考URL