質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

docker-compose buildでConnectionRefusedErrorが起きる

donguri2022
donguri2022

総合スコア10

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1回答

0リアクション

0クリップ

313閲覧

投稿2022/08/04 03:03

実現したいこと

InsightFaceとFastAPIで顔検出サーバを作ってみた
このサイトの内容と全く同じように、Dockerイメージをビルド、起動したのですが、ビルド段階でエラーが発生してしまいました。
ネットワーク関係のエラーかと思い一日中調べましたが、全く直る気配がなく、質問させていただきました。

発生している問題・エラーメッセージ

PS C:\..中略..\202107-face-detector> docker-compose build ---中略--- => ERROR [10/13] RUN ./src/get_model.py 26.0s ------ > [10/13] RUN ./src/get_model.py: #0 25.56 download_path: /root/.insightface/models/antelopev2 #0 25.56 Downloading /root/.insightface/models/antelopev2.zip from http://storage.insightface.ai/files/models/antelopev2.zip... #0 25.57 Traceback (most recent call last): #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 174, in _new_conn #0 25.57 conn = connection.create_connection( #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/util/connection.py", line 95, in create_connection #0 25.57 raise err #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/util/connection.py", line 85, in create_connection #0 25.57 sock.connect(sa) #0 25.57 ConnectionRefusedError: [Errno 111] Connection refused #0 25.57 #0 25.57 During handling of the above exception, another exception occurred: #0 25.57 #0 25.57 Traceback (most recent call last): #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 703, in urlopen #0 25.57 httplib_response = self._make_request( #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 398, in _make_request #0 25.57 conn.request(method, url, **httplib_request_kw) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 239, in request #0 25.57 super(HTTPConnection, self).request(method, url, body=body, headers=headers) #0 25.57 File "/usr/lib/python3.8/http/client.py", line 1256, in request #0 25.57 self._send_request(method, url, body, headers, encode_chunked) #0 25.57 File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request #0 25.57 self.endheaders(body, encode_chunked=encode_chunked) #0 25.57 File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders #0 25.57 self._send_output(message_body, encode_chunked=encode_chunked) #0 25.57 File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output #0 25.57 self.send(msg) #0 25.57 File "/usr/lib/python3.8/http/client.py", line 951, in send #0 25.57 self.connect() #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 205, in connect #0 25.57 conn = self._new_conn() #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 186, in _new_conn #0 25.57 raise NewConnectionError( #0 25.57 urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f95d8e43f40>: Failed to establish a new connection: [Errno 111] Connection refused #0 25.57 #0 25.57 During handling of the above exception, another exception occurred: #0 25.57 #0 25.57 Traceback (most recent call last): #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 489, in send #0 25.57 resp = conn.urlopen( #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 787, in urlopen #0 25.57 retries = retries.increment( #0 25.57 File "/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py", line 592, in increment #0 25.57 raise MaxRetryError(_pool, url, error or ResponseError(cause)) #0 25.57 urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='storage.insightface.ai', port=80): Max retries exceeded with url: /files/models/antelopev2.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f95d8e43f40>: Failed to establish a new connection: [Errno 111] Connection refused')) #0 25.57 #0 25.57 During handling of the above exception, another exception occurred: #0 25.57 #0 25.57 Traceback (most recent call last): #0 25.57 File "./src/get_model.py", line 5, in <module> #0 25.57 insightface.app.FaceAnalysis() #0 25.57 File "/usr/local/lib/python3.8/dist-packages/insightface/app/face_analysis.py", line 28, in __init__ #0 25.57 self.model_dir = ensure_available('models', name, root=root) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/insightface/utils/storage.py", line 28, in ensure_available #0 25.57 return download(sub_dir, name, force=False, root=root) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/insightface/utils/storage.py", line 17, in download #0 25.57 download_file(model_url, #0 25.57 File "/usr/local/lib/python3.8/dist-packages/insightface/utils/download.py", line 71, in download_file #0 25.57 r = requests.get(url, stream=True) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 73, in get #0 25.57 return request("get", url, params=params, **kwargs) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 59, in request #0 25.57 return session.request(method=method, url=url, **kwargs) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 587, in request #0 25.57 resp = self.send(prep, **send_kwargs) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 701, in send #0 25.57 r = adapter.send(request, **kwargs) #0 25.57 File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 565, in send #0 25.57 raise ConnectionError(e, request=request) #0 25.57 requests.exceptions.ConnectionError: HTTPConnectionPool(host='storage.insightface.ai', port=80): Max retries exceeded with url: /files/models/antelopev2.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f95d8e43f40>: Failed to establish a new connection: [Errno 111] Connection refused')) ------ failed to solve: executor failed running [/bin/sh -c ./src/get_model.py]: exit code: 1

該当のソースコード

コード全文はこちらにあります。
https://github.com/nayutaya/202107-face-detector

python

#!/usr/bin/env python3 #質問者注:detector-insightface/src/get_model.py(全文)です。 import insightface insightface.app.FaceAnalysis()

yaml

#質問者注:docker-compose.yaml(コメントアウトされたコードを除いたもの)です。 version: "3" services: detector-insightface: build: "detector-insightface" ports: - "8000:8000"

Powershell

# リポジトリを取得 git clone https://github.com/nayutaya/202107-face-detector.git cd 202107-face-detector # タグをチェックアウト git checkout 20210727c # Dockerイメージをビルドする docker-compose build # ← 質問者注:ここでエラーが発生しました。 # Dockerコンテナをバックグラウンドで起動する docker-compose up -d # (試したあとに)Dockerコンテナを停止する docker-compose down

試したこと

さかのぼると

Downloading /root/.insightface/models/antelopev2.zip from http://storage.insightface.ai/files/models/antelopev2.zip... ...中略... ConnectionRefusedError: [Errno 111] Connection refused

となっているので、Dockerのネットワーク関係かと思い、調べて出てきた方法を試しました。

まず、docker-compose.yamlに、

yaml

#1.下をports:と同じインデントで追加 network_mode: "host" #2.下をports:と同じインデントで追加し、 networks: - host # これをファイル末尾に追記。 networks: host: name: host external: true #3.下をports:と同じインデントで追加し、 networks: mynetwork: {} # これをファイル末尾に追記。 networks: mynetwork: name: host external: true

しましたが駄目でした。

また、C:\Users\%userprofile%\.docker\daemon.jsonに

json

{ "dns": ["8.8.8.8", "8.8.4.4"] }

を追加しましたが駄目でした。

補足情報(FW/ツールのバージョンなど)

元サイトと違い、Docker Desktop for MacではなくDocker Desktop for Windowsを使っています。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです