smly / kaggle-book-gokui

付録コード
MIT License
117 stars 20 forks source link

4章のDocker イメージのビルドが途中でエラー落ちする #12

Closed ryota0051 closed 1 year ago

ryota0051 commented 1 year ago

chapter4のDockerfileをbuildすると、 https://github.com/ducha-aiki/pydegensac/issues/15 に記載されたようなエラーが発生しました。 記載されている内容を見ると、

  1. python3.9.7でpip install pydegensac を実行したが、上手くインストールできなかったので、gitからcloneしてsetup.pyを用いたインストールも実施してみたが上手く動作しなかった。
  2. python3.8に変えると上手くインストールできた。
  3. pypiにpython3.9, 3.10, 3.11が追加されたので上記issueは閉じられた というような経緯があるようです。

こちらは、どのように対処すればよいでしょうか? 思いつく対処方法としては、ベースイメージで使用されているpythonが3.10なので、

  1. Dockerfileにおけるgitでインストールしている部分を削除して、requirements.txtにpydegensacを追記する。
  2. pythonが3.8のpytorchイメージに変更する(pytorch/pytorch:1.8.1-cuda10.2-cudnn7-runtime など)。

参考までに、以下にこちらの環境を以下に示します。 ・OS: Ubuntu 22.04.2 LTS ・Dockerのバージョン: 20.10.2

よろしくお願いいたします。

ryota0051 commented 1 year ago

Dockerfileを

FROM pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel

RUN apt-get update -qq &&\
  DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    libgl1-mesa-glx \
    libgl1-mesa-dev \
    libglib2.0-0 \
    libsm6 \
    libxrender1 \
    libxrender1 \
    libxext6 \
    wget \
    unzip \
    git \
    python3-tk \
    &&\
  apt-get clean && rm -rf /var/lib/apt/lists/*

RUN cd /opt &&\
-  git clone https://github.com/google-research/tf-slim.git &&\
-  cd tf-slim &&\
-  pip install . &&\
-  cd /opt &&\
  wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip &&\
  unzip protoc-3.3.0-linux-x86_64.zip
ENV PATH_TO_PROTOC /opt

RUN cd /opt &&\
  git clone https://github.com/tensorflow/models.git &&\
  cd /opt/models/research/delf &&\
  ${PATH_TO_PROTOC?}/bin/protoc delf/protos/*.proto --python_out=. &&\
  pip install -e . &&\
  cd /opt/models/research/delf/delf/python/delg &&\
  mkdir parameters && cd parameters &&\
  wget https://storage.googleapis.com/delf/r101delg_gldv2clean_20200914.tar.gz &&\
  tar -xvzf r101delg_gldv2clean_20200914.tar.gz
RUN mkdir parameters &&\
  cd parameters &&\
  wget https://storage.googleapis.com/delf/r101delg_gldv2clean_20200914.tar.gz &&\
  tar -xvzf r101delg_gldv2clean_20200914.tar.gz

RUN cd /opt &&\
  git clone https://github.com/filipradenovic/cnnimageretrieval-pytorch

- RUN cd /opt &&\
-  git clone https://github.com/ducha-aiki/pydegensac &&\
-  cd pydegensac &&\
-  pip install .

ENV PYTHONPATH $PYTHONPATH:/opt/models/research:/opt/cnnimageretrieval-pytorch

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY *.py /workspace/
RUN ln -s /opt/models /workspace/models

のように修正しました。

また、requirements.txtを

timm
opencv-python
albumentations
pandas
+ tensorflow
+ tf-slim
faiss-gpu
matplotlib
+ pydegensac

のように修正しました。

上記の修正を施すことで

が上手く動作することを確認できました。

smly commented 1 year ago

ご指摘いただきありがとうございます!PyPI にパッケージが追加された推移などの情報も助かります。 私の環境からもビルドを確認して Dockerfile の更新を試みます。

ビルド環境のアーキテクチャによって結果が変りそうであるため、必要に応じて README.md へ加筆説明を加えます。

smly commented 1 year ago

頂いた差分をベースに #20 にて修正を行いました。ご指摘ありがとうございました!