ビルド時に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 # ←★ここ
version: "3.9"
services:
app:
build:
context: .
network: host # ←★ここ
network_mode: host # ←★ここ
version: "3.9" services: app: build: context: . network: host # ←★ここ network_mode: host # ←★ここ
コメント