結論
- 最初に
docker-compose up
じゃなくてdocker-compose build
を叩きましょう
どんな状況?
- docker-composeで新規にコンテナ群を作る状況を想定
- コンテナAの構築のためのDockerfile内で ubuntuイメージを持ってきて
apt update
するケース- これに対して
docker-compose up
を叩くとコンテナビルドの途中、上記apt update
の箇所でエラー - エラーメッセージは「ubuntu.comなんて見つからないよ?」みたいな名前解決エラーの気配
FROM ubuntu:20.04 RUN apt-get -y update && apt-get -y upgrade
- これに対して
解決方法
- 初めに書いた通り、
docker-compose build
を実行する- これで上記
apt update
の箇所の名前解決も通るようになる
- これで上記
愚痴
- コンテナ未構築状態で
docker-compose up
を実行しても普通にコンテナのビルドが走る- Dockerfileの内容次第では平和にコンテナ構築が完了する
-
エラー内容を見てDNS周りを探りに行くとドハマりする
- 「コンテナ無いから
up
の前にbuild
してくれ」みたいなメッセージが出てくれれば… -
/etc/resolv.conf
の修正で解決しているような情報もネット上に溢れているので余計にそうなる- 彼らは
docker-compose build
を実行した際に名前解決エラーになっているパターンと考える
- 彼らは
- 補足として実行環境がUbuntu on WSL2である場合、
/etc/resolv.conf
の編集は不要
- 「コンテナ無いから