🐞

データサイエンス協会:データサイエンス100本ノック(構造化データ加工編)の環境構築で詰まった話

2021/11/16に公開

概要

データサイエンス協会が提供しているデータサイエンス100本ノック(構造化データ加工編)の環境構築でつまづき、一応解決できたので備忘録として残しておきます。

Githubのrepositoryはこちら
https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess

環境

OS: macOS 10.15.7
Docker-Desktop: 4.2.0 (70708)

エラーメッセージ

READMEの記載してある下記のコードを動かしたところ

git clone git@github.com:The-Japan-DataScientist-Society/100knocks-preprocess.git
cd 100knocks-preprocess
docker-compose up -d --build

次のようなエラーを吐いてビルドがこけました。

Service "notebook" failed to build

メッセージを見るとdockerfiles/notebook/Dockerfileの下記のどこかが上手く動いていなそうということはわかりました.

RUN apt-get update \
    && apt-get install -y --no-install-recommends lsb-release=11.1.0ubuntu2 gnupg=2.2.19-3ubuntu2.1 \
    && sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' \
    && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
    && apt-get update \
    && apt-get install -y --no-install-recommends libpq-dev=14.0-1.pgdg20.04+1 \
    && apt-get remove -y lsb-release gnupg \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/*

原因を調べる

調べてたところ同じようなエラーを吐いた記事などが無く、新しくubuntu18.04のコンテナを作成して上記のコードのどこの部分でこけているかを試してみました。

結論としては以下の2つのインストールの際にバージョンが無いよというエラーが帰ってきているのが原因でした。

apt-get install -y --no-install-recommends lsb-release=11.1.0ubuntu2 gnupg=2.2.19-3ubuntu2.1 \
&& apt-get install -y --no-install-recommends libpq-dev=14.0-1.pgdg20.04+1

実際には以下のようなエラーを吐いていました。

E: Version '11.1.0ubuntu2' for 'lsb-release' was not found
E: Version '2.2.19-3ubuntu2.1' for 'gnupg' was not found

対処

今回はバージョンを指定しないで動くことを確認したので、それぞれ以下のように修正して再度ビルドを走らせたら無事完了しました。

- &&  apt-get install -y --no-install-recommends lsb-release=11.1.0ubuntu2 gnupg=2.2.19-3ubuntu2.1 \
+ apt-get install -y --no-install-recommends lsb-release gnupg \
- &&  apt-get install -y --no-install-recommends libpq-dev=14.0-1.pgdg20.04+1 \
+ &&  apt-get install -y --no-install-recommends libpq-dev \

Notebookの動作も確認済みです。
参考になれば幸いです。

Discussion