docker buildする際に躓いたので書いておきます。
Dockerfile内でdnf upgradeする際に最初にリポジトリからメタデータをダウンロードしてくるのですが、
AppStreamリポジトリからダウンロードが失敗してしまいます。
# dnf upgrade Failed to set locale, defaulting to C.UTF-8 CentOS-8 - AppStream 0.0 B/s | 0 B 00:05 Failed to download metadata for repo 'AppStream' Error: Failed to download metadata for repo 'AppStream'
ちなみにホスト側ではリポジトリからのダウンロードがうまくいきます。
selinux,firewalldは無効にしてあります。
またコンテナ内からもAppStreamリポジトリへの名前解決やping等も通ります。
なので、なぜダウンロードが失敗するのか見当がつかず・・・。
試しにDockerfileでリゾルバをいじっている個所をコメントアウトしてみました。
Dockerfile
RUN set -x && \ # echo "nameserver 8.8.8.8" > /etc/resolv.conf && \
するとなんと解決しました。
なぜだろう・・・。なんか特別なルートで名前解決しに行っているのでしょうか?
ここらへんはまだ謎のままですが、とりあえずbuildはできるようになりました。
解決策
resolv.confから「nameserver 8.8.8.8」を削除する