🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

OpenCV

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

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

Q&A

解決済

2回答

3390閲覧

Dockerファイルをビルドしたい。ビルドエラー

I_am_

総合スコア23

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

OpenCV

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

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

0グッド

0クリップ

投稿2020/12/21 07:46

前提・実現したいこと

Dockerfileをビルドしたいです。
DOckerのmakeの部分でエラーが起きています。

マシン

macOS Big Sur (11.0.1) MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) cou 2 GHz クアッドコアIntel Core i5 メモリ 16 GB 3733 MHz LPDDR4X GPU Intel Iris Plus Graphics 1536 MB Docker version 20.10.0,

c++のopencvをmakeする所で詰まっています。

また、他のプロジェクトでビルドしたときは、ここのmakeは通りました。

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

以下がエラーが出ている場所です。

..... #34 776.8 [ 81%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_umat.cpp.o #34 782.5 [ 81%] Building CXX object modules/datasets/CMakeFiles/opencv_datasets.dir/src/fr_lfw.cpp.o #34 835.3 c++: internal compiler error: 強制終了 (program cc1plus) #34 835.3 Please submit a full bug report, #34 835.3 with preprocessed source if appropriate. #34 835.3 See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions. #34 835.3 modules/core/CMakeFiles/opencv_test_core.dir/build.make:782: recipe for target 'modules/core/CMakeFiles/opencv_test_core.dir/test/test_intrin128.sse2.cpp.o' failed #34 835.3 make[2]: *** [modules/core/CMakeFiles/opencv_test_core.dir/test/test_intrin128.sse2.cpp.o] Error 4 #34 835.4 make[2]: *** 未完了のジョブを待っています.... #34 835.6 [ 81%] Building CXX object modules/objdetect/CMakeFiles/opencv_objdetect.dir/src/cascadedetect_convert.cpp.o #34 839.5 [ 81%] Building CXX object modules/ccalib/CMakeFiles/opencv_ccalib.dir/src/omnidir.cpp.o .... #34 911.9 [ 84%] Building CXX object modules/datasets/CMakeFiles/opencv_datasets.dir/src/tr_chars.cpp.o #34 911.9 [ 84%] Building CXX object modules/datasets/CMakeFiles/opencv_datasets.dir/src/tr_icdar.cpp.o #34 912.2 CMakeFiles/Makefile2:2674: recipe for target 'modules/core/CMakeFiles/opencv_test_core.dir/all' failed #34 912.2 make[1]: *** [modules/core/CMakeFiles/opencv_test_core.dir/all] Error 2 #34 912.2 make[1]: *** 未完了のジョブを待っています.... #34 912.2 [ 84%] Linking CXX shared library ../../lib/libopencv_objdetect.so ... #34 922.2 [ 84%] Linking CXX shared library ../../lib/libopencv_videostab.so #34 922.4 [ 84%] Built target opencv_videostab #34 923.2 [ 84%] Linking CXX shared library ../../lib/libopencv_xfeatures2d.so #34 923.5 [ 84%] Built target opencv_xfeatures2d #34 923.5 Makefile:162: recipe for target 'all' failed #34 923.5 make: *** [all] Error 2 ------ executor failed running [/bin/sh -c make -j11]: exit code: 2

該当のソースコード

対象のDockerファイルです。

FROM ubuntu:18.04 WORKDIR /root ENV DEBIAN_FRONTEND noninteractive # sh->bash RUN mv /bin/sh /bin/sh_tmp && ln -s /bin/bash /bin/sh # apt-get更新 wget取得 RUN sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive/%g" /etc/apt/sources.list RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y wget RUN apt-get install -y apt-utils RUN apt-get install -y nano RUN apt-get install -y less RUN apt-get install -y vim RUN apt-get install -y git # opencv install RUN apt-get install -y build-essential cmake unzip pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python3-dev WORKDIR /root/tmp/ RUN unzip opencv344.zip RUN unzip opencv344cont.zip WORKDIR /root/tmp/opencv-3.4.4 RUN mkdir build WORKDIR /root/tmp/opencv-3.4.4/build RUN cmake -D CMAKE_BUILD_TYPE=RELEASE -D PYTHON_EXECUTABLE=$(which python3) -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/root/tmp/opencv_contrib-3.4.4/modules .. RUN make -j11 >>ここでエラー RUN make install RUN /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' RUN ldconfig # sh->bashを元に戻す RUN rm /bin/sh && mv /bin/sh_tmp /bin/sh

試したこと

計4回ほどビルドを試しました。
初めは最初の方で、
g++: internal compiler error: Killed (program cc1plus)
が表示されていて、
https://omohikane.com/centos_internal_compiler_error/
をみたところ、マシンのメモリが足りていないとのことだったので、起動プロセスを停止して再度ビルドしてみたのですが、
上記の場所でエラーになってしまいました。

34 835.3 c++: internal compiler error: 強制終了 (program cc1plus)
で再び同じエラーということはメモリが足りていないということですか???

それとも他の原因があるのでしょうか??

一回のビルドに15分ほどかかるので怖くてビルドができなくなってしまっています。

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

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

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

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

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

yumetodo

2020/12/21 09:04

そもそもなんでopencvをビルドしているのでしょう?prebuildのではだめなので? その場合でも https://github.com/yumetodo/tesseract_opencv_pkg/ のようにDockerfileの外でビルドしたパッケージを作るのが有効です。
I_am_

2020/12/23 17:20 編集

実際、Opencvはプレビルドでいいのですが、 今後にビルドを行う予定があるのでその練習としてプレビルドしない方法でDockerを作成したいと思ってます。 発生しうるエラーを潰しておきたいと思いました。
inductor

2020/12/22 04:10

Dockerに割り当てるメモリはいくつになってますか?
I_am_

2020/12/23 17:24

Dockerにメモリが割り当てられていることを知らなかったです。 Dockerデーモンが勝手にハードの管理をしているものだと思っていました。
guest

回答2

0

手元のマシンでダメならハイスペックマシンを借りましょう!冗談ではなく本気です。クラウドの力を借りるのです。AWS や GCP ならメモリをうんと積んだ仮想マシンが時間単位で借りることができます。メモリ 3,904 GiB とかいう化物みたいなマシンでも借りられます。そこまでいかずともお金はかかりますが、ビルド時間が短く済めばそんなにかからないかもしれません。解決策の一つとしてアリだと思います。

投稿2020/12/21 18:33

A_kirisaki

総合スコア2853

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

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

I_am_

2020/12/23 17:30

今後AWSで重いビルドをするときにはそのような一時的にスペックをあげるなどして対応していきたいと思います。
guest

0

自己解決

Dockerの設定をみていくとメモリが2GBしか割り当てられていませんでした。
https://knowledge.sakura.ad.jp/5118/
この記事を参考にメモリを増やしたらビルドできました。

投稿2020/12/23 17:27

I_am_

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問