読者です 読者をやめる 読者になる 読者になる

uyamazakのブログ

仕事中の問題と解決メモ。PythonとGoogle Cloudがメイン。bizoceanで新規事業の企画と開発担当。 BigQueryを使ったビッグデータ収集・解析・リアルタイム処理プロジェクト進行中 https://github.com/uyamazak/oceanus

Google Cloud Datalabに任意のパッケージをインストールする

自社では基本的にBigQueryにデータをぶちこんでいるので、データ解析や、機械学習にはJupyterのGoogleカスタマイズ版であるDatalabを使っています。

cloud.google.com

基本的な使い方はJupyter(IPython)と一緒です。

BigQueryをはじめ、Storage等、Google環境に必要なライブラリは一通り入っていますが、やはり色々やろうとすると、pip installやら、apt-getやらが必要になってきます。


そこで2つ、カスタマイズ方法を紹介します。

使うパッケージは一回だけと思われる場合

コマンドでインストールします。再起動時などには消えるので、それでもかまわない場合。


まずdocker psで、datalabのコンテナIDを取得しておき、下記のコマンドを行う

docker exec {コンテナID} pip install {欲しいパッケージ名}

もしくは、bashなどで入ってからインストールする

docker exec -it {コンテナID} bash

bashが立ち上がるのでpipとかapt-getする。

apt-getの場合は、updateしないと駄目な場合が多いので、bashで入ったほうが楽かも。

永続的に使いたい場合

自分でDockerfileを使って、拡張します。

好きな名前でディレクトリを作ってDockerfile作成

mkdir mydatalab
cd mydatalab
vim Dockerfile

私の場合は下記のような感じ。

FROM gcr.io/cloud-datalab/datalab:local

# install from pypi
RUN pip install --upgrade pip && pip install -q \
bigquery-python \
cython \
oauth2client \
sendgrid \
gensim \
scipy \
networkx \
suds

RUN apt-get update && apt-get install -y \
    gcc

githubからもがんばれば出来る。


ビルド

sudo docker build -t mydatalab:latest

起動

sudo docker run -d -p "8080:8080" \
    -v "/path/to/content:/content" \
    mydatalab:latest

ビルドとか起動とかはシェルスクリプト化しておくと便利

ただCloud Datalabは、Google社内と同じくPython2.7なのでPython3にしかないものを使うときはいろいろと大変そう。まだ困ったことはない。

Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)

Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)