Skip to main content

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設定を変更してみてください。

  1. /etc/docker/daemon.json 以下のように編集して、GoogleなどのDNSサーバを追加する。

    {
    "runtimes": {
    "nvidia": {
    "args": [],
    "path": "nvidia-container-runtime"
    }
    },
    "dns": ["8.8.8.8", "8.8.4.4"] # この部分を追加
    }
  2. docker を再起動する

    sudo systemctl restart docker
  3. 再度ビルドを試してみる。

まとめ

この記事では、DNS設定に起因するdocker build エラーの対処方法を紹介しました。 同様のエラーで詰まっている方のお役に少しでも立てたのであれば、幸いです。