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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2248閲覧

object_detection/protos/*.proto: No such file or directoryというエラーの解決方法が分からない

infra____

総合スコア90

Docker

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/21 07:30

下記ページを参考に、Object Detection APIが動作するDockerイメージを作成しています。
https://acro-engineer.hatenablog.com/entry/2018/09/05/120000

Docker

1FROM python:2.7 2 3RUN apt-get update 4RUN apt-get install git -y 5RUN pip install tensorflow 6 7RUN curl -OL https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip;\ 8 apt-get install unzip;\ 9 unzip protoc-3.3.0-linux-x86_64.zip -d protoc3;\ 10 mv protoc3/bin/* /usr/local/bin/;\ 11 mv protoc3/include/* /usr/local/include/ 12 13RUN apt-get install python-pil python-lxml python-tk -y; \ 14 pip install Cython; \ 15 pip install jupyter; \ 16 pip install matplotlib; \ 17 pip install Cython; \ 18 pip install pillow; \ 19 pip install lxml; \ 20 pip install jupyter; \ 21 pip install matplotlib; 22 23 24ENV PYTHONUNBUFFERED=TRUE 25ENV PYTHONDONTWRITEBYTECODE=TRUE 26ENV PATH="/opt/program:${PATH}" 27 28RUN mkdir /opt/program 29 30RUN mkdir /opt/program/object_detection;\ 31 mkdir /opt/program/slim 32COPY train /opt/program/ 33COPY ssdlite_mobilenet_v2_coco.config /opt/program 34COPY object_detection /opt/program/object_detection 35COPY slim /opt/program/slim 36 37WORKDIR /opt/program 38 39RUN git clone https://github.com/cocodataset/cocoapi.git;\ 40 cd cocoapi/PythonAPI;\ 41 make;\ 42 cp -r pycocotools /opt/program/; 43 44WORKDIR /opt/program 45 46RUN /bin/bash -c "protoc object_detection/protos/*.proto --python_out=./" 47ENV PYTHONPATH=$PYTHONPATH:/opt/program:/opt/program/slim

上記をビルドしたところ、下記のエラーが吐き出されました。

RUN /bin/bash -c "protoc object_detection/protos/*.proto --python_out=./": #21 0.336 object_detection/protos/*.proto: No such file or directory ------ executor failed running [/bin/sh -c /bin/bash -c "protoc object_detection/protos/*.proto --python_out=./"]: exit code: 1

RUN /bin/bash -c "protoc object_detection/protos/*.proto --python_out=./"の前行に、
WORKDIR /path/to/models/researchを記述し、エラー解決を試みましたが、同じエラーが発生します。
おそらく、/models/researchの前のパスがおかしいと思いますが、、、

機械学習初心者で、右も左も分からない状況です。どなたか、ご教示いただけますと幸いです。

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

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

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

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

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

zembutsu

2021/04/21 19:58

Docker としてのコマンドはあっているように見えます。  Dockerfile に `COPY object_detection /opt/program/object_detection` とありますが、Dockerfile がある場所( `docker image build` を実行した場所)で 「ls -al object_detection/protos/」を実行されますと、どのような結果になりますか。
guest

回答1

0

ベストアンサー

Docker としてのコマンドや Dockerfile の内容は問題ないように見えます。 

今回のエラー内容とは、Docker イメージの中で WORKDIR 内の ./object_detection/proto/*.proto が無いというものです。おそらく、その通りファイルが無い可能性があります。

Dockerfile に COPY object_detection /opt/program/object_detection とありますが、Dockerfile がある場所( docker image build を実行した場所)で 「ls -al object_detection/protos/」を実行されて、ファイルがあるかどうかが確認ポイントになります。

もし、ファイルが存在してもこのエラーが出ている場合は、何らかの理由でイメージが正しく構築されていません(ファイル変更を検出できず、 COPY 処理が働いていなかったり、何かキャッシュを docker 側がみているのかもしれません)。

そのような場合は、docker image build --no-cache のように、キャッシュを使わないでイメージを再構築する方法を試されてはいかがでしょう。

投稿2021/04/21 21:16

zembutsu

総合スコア1584

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問