DNS設定に起因するdocker build エラー
先日、docker compose build をした際にネットワーク関係のエラーが出て正常にビルドできない現象に遭遇したので、対処法を紹介します。
⚠️ どんなエラーか
以下のコマンドなどでdockerをビルドした際に、
docker compose up -d --build
次のような、ネットワーク周りに起因するエラーと思われるメッセージが表示され、ビルドに失敗する現象が発生しました。
(略)
7.239 Temporary failure resolving 'deb.debian.org'
7.244 Reading package lists...
7.258 W: Failed to fetch http://deb.debian.org/debian/dists/bookworm/InRelease Temporary failure resolving 'deb.debian.org'
7.258 W: Failed to fetch http://deb.debian.org/debian/dists/bookworm-updates/InRelease Temporary failure resolving 'deb.debian.org'
7.258 W: Failed to fetch http://deb.debian.org/debian-security/dists/bookworm-security/InRelease Temporary failure resolving 'deb.debian.org'
7.258 W: Some index files failed to download. They have been ignored, or old ones used instead.
7.267 Reading package lists...
7.279 Building dependency tree...
7.280 Reading state information...
7.282 E: Unable to locate package python3-dev
------
failed to solve: process "/bin/sh -c apt-get update && apt-get install -y gcc python3-dev" did not complete successfully: exit code: 100
✅ 対処方法
結果的に、DNS設定を修正することで問題を解決することができました。 以下の手順に従って、docker利用時のDNS設定を変更してみてください。
/etc/docker/daemon.json
以下のように編集して、GoogleなどのDNSサーバを追加する。{
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
},
"dns": ["8.8.8.8", "8.8.4.4"] # この部分を追加
}docker を再起動する
sudo systemctl restart docker
再度ビルドを試してみる。
まとめ
この記事では、DNS設定に起因するdocker build エラーの対処方法を紹介しました。 同様のエラーで詰まっている方のお役に少しでも立てたのであれば、幸いです。