プログラミング寄稿

Dockerfile からビルド時にpip install に失敗する

ビルド時に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      # ←★ここ


コメント