2019年4月11日木曜日

DockerでJupyter Lab、ipython-sqlとPostgreSQL11がインストールされたコンテナを作成する

Jupyter Labとipython-sql、PostgreSQLでPythonとSQLが使用できる環境を提供する事ができます。

1. イメージの作成
docker build -t jupyter-pg .

Dockerfile
FROM jupyter/scipy-notebook
ENV TZ=Asia/Tokyo
USER root
RUN apt-get update \
  && apt-get -y install libpq-dev python-dev \
  && pip install psycopg2-binary \
  && pip install ipython-sql \
  && apt-get clean
USER $NB_UID

2. Jupyter NotebookとPostgreSQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  jupyter-pg:
    image: jupyter-pg
    container_name: "jupyter-pg"
    volumes:
      - "jupyter-data:/home/jovyan/work"
    ports:
      - "8888:8888"
    environment:
      JUPYTER_TOKEN: jupyter
      JUPYTER_ENABLE_LAB: 1
    depends_on:
      - db
  db:
    image: postgres:11-alpine
    container_name: "test-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: test
        POSTGRES_PASSWORD: test
volumes:
  db-data:
    driver: local
  jupyter-data:
    driver: local

3.ブラウザから以下のURLにアクセス
http://<Dockerホスト名またはIP>:8888/?token=jupyter

〇動作検証用コード
%load_ext sql
dsl = 'postgres://postgres:test@db:5432/test'
%sql $dsl

%%sql
select * from pg_database;

〇Jupyter Labの実行画面


○関連情報
・psycopg2に関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿