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

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

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Docker

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

Q&A

解決済

1回答

1318閲覧

dockerでのopen cv のビルドが永遠に終わらない

alizona

総合スコア126

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Docker

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

0グッド

0クリップ

投稿2022/07/28 06:58

編集2022/07/28 16:46

mac os
docker で opencv -python を使いたく docker-compose build しています。

この画像の状況が40分続いています。たまに一行更新されるのですが、pipのupdateやdocker imageの変更や、opencv-pythonのバージョンの変更とう試したのですが、何度祭ビルドしても、20分、30分と、かかってしまいます。
localで open-cvをダウンロードしたときは1分ほどだったと記憶しているのですが、何かアドバイスいただけないでしょうか?
試行錯誤して、5時間ほどかかってしまいました。

FROM python:3.8.0 # Adding backend directory to make absolute filepaths consistent across services WORKDIR /app/backend # Install Python dependencies COPY requirements.txt /app/backend RUN apt-get update && apt-get upgrade -y RUN pip install --upgrade pip RUN pip install --upgrade setuptools # OpenCV RUN apt-get install -y libgl1-mesa-glx libglib2.0-0 libsm6 libxrender1 libxext6 RUN pip install opencv-python RUN pip install opencv-contrib-python #docker imageを alpine から python:3.8に変更したので、 #このRUNのapk が使えないためコードを変更しなくてはいけない RUN \ apk add bash && \ apk add --no-cache postgresql-libs && \ apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \ apk add build-base libffi-dev && \ pip3 install --upgrade pip -r requirements.txt && \ apk --purge del .build-deps # Add the rest of the code COPY . /app/backend COPY ./scripts/ /app/ # Make port 8000 available for the app ENV PORT 8000 EXPOSE 8000 # Be sure to use 0.0.0.0 for the host within the Docker container, # otherwise the browser won't be able to find it RUN ["chmod", "+x", "/app/entrypoint-dev.sh"] ENTRYPOINT [ "/app/entrypoint-dev.sh" ] # clearn RUN rm -rf /var/lib/apt/lists/*

docker

1# Use an official Python runtime as a parent image 2FROM python:3.7-alpine 3 4# Adding backend directory to make absolute filepaths consistent across services 5WORKDIR /app/backend 6 7# Install Python dependencies 8COPY requirements.txt /app/backend 9RUN \ 10 apk update && \ 11 apk upgrade && \ 12 apk add bash && \ 13 apk add --no-cache postgresql-libs && \ 14 apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \ 15 apk add build-base libffi-dev && \ 16 pip3 install --upgrade pip -r requirements.txt && \ 17 apk --purge del .build-deps 18 19# Add the rest of the code 20COPY . /app/backend 21COPY ./scripts/ /app/ 22 23# Make port 8000 available for the app 24ENV PORT 8000 25EXPOSE 8000 26 27# Be sure to use 0.0.0.0 for the host within the Docker container, 28# otherwise the browser won't be able to find it 29RUN ["chmod", "+x", "/app/entrypoint-dev.sh"] 30ENTRYPOINT [ "/app/entrypoint-dev.sh" ] 31

requirements.txt

1opencv-python==4.6.0.66 2Django==2.2.9 3psycopg2==2.8.4 4whitenoise==4.1.4 5dj-database-url==0.5.0 6beautifulsoup4==4.10.0 7requests>=2.21.0 8selenium==4.1.3

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alizona

2022/07/28 07:29

ありがとうございます。 https://dendenblog.xyz/opencv-dockerfile/ こちらのサイトのdocker fileはビルドできました。 ただ、私のdocker fileではapk を使っていて、apt-getに変更する際に色々とわからないことがあって、そちらの処理をしつつ、何かアドバイスをいただけないか待ってみます。
hoshi-takanori

2022/07/28 07:39

質問者さんの Dockerfile の先頭には FROM python:3.7-alpine とありますが、これは Alpine Linux というディストリビューションをもとにしています。が、Alpine Linux では上の記事の通り libc (Linux の実行プログラムを動かすための基本的なライブラリ) が他とは違うため、メモリ管理の性能が良くなかったり、そもそも他のディストリビューションならビルド済みのバイナリが使えるのに Alpine Linux では使えなくてわざわざビルドする羽目になったりする、ということだと思われます。 ので、たぶんベースイメージを FROM python:3.8.0 (ちょっと古いけど…) とかにすれば、たぶん ubuntu か debian なので、apt-get を使えるのでは…。(docker も python も詳しくないので、そのくらいしか言えませんが。)
alizona

2022/07/28 07:44

参考にしたリンク通りでbuildできました。 今は、apt-getでのdocker fileの書き方を調べている最中です。 ありがとうございます。
guest

回答1

0

自己解決

alpine ではbuild速度がubuntsuの50倍だということでしたので、 python:3.8.0を使うことで解決しました。

投稿2022/07/28 07:46

alizona

総合スコア126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問