プログラミング寄稿

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失敗を回避できる。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
version: "3.9"
services:
app:
build:
context: .
network: host # ←★ここ
network_mode: host # ←★ここ
version: "3.9" services: app: build: context: . network: host # ←★ここ network_mode: host # ←★ここ
version: "3.9"

services:
  app:
    build:
      context: .
      network: host         # ←★ここ
    network_mode: host      # ←★ここ


コメント