ビルド時にpip install に失敗する
DockerfileにRUN pip install --no-cache-dir -r requirements.txt と記述し、buildした際、txtファイル内に記述したnumpy などのパッケージがNo matching distribution found for というエラーを吐いて失敗する。しかしながら、pip install を記述せずに先にビルドしてコンテナ起動後に、コンテナ内でpip install すると成功してしまう。
ビルド時に追加のオプションを指定
このエラーはDNS失敗に起因するものである。docker build --network=host -t <コンテナ名> のように--network=host という引数を追加することで、DNS問題を回避できる。
docker-compose.yml の場合
docker-compose.ymlにnetwork_modeをhostに指定する。ホストと同じ DNS / proxy を使えるのでDNS失敗を回避できる。
version: "3.9"
services:
app:
build:
context: .
network: host # ←★ここ
network_mode: host # ←★ここ
コメント