2018年6月13日水曜日

DockerでpgcliとPostgreSQL10がインストールされたコンテナを構築する

pgcliは補完機能を備えたPostgresqlのCUIです。

〇pgcliの画面


〇コンテナの構築方法
1. pgcliイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t pgcli .

Dockerfile
FROM python:3.6-alpine3.7

RUN apk update \
  && apk add --no-cache --virtual=build-deps musl-dev gcc build-base python3-dev postgresql-dev\
  && pip install psycopg2 pgcli\
  && apk del build-base build-deps gcc \
  && apk add --no-cache postgresql-client \
  && rm -rf /var/cache/apk/* \
VOLUME /work
WORKDIR /work
CMD ["/usr/local/bin/pgcli"]

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

docker-compose.yml
version: "2"
services:
  db:
    image: postgres:10.4-alpine
    container_name: "db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
      POSTGRES_DB: test
      POSTGRES_PASSWORD: postgres
  pgcli:
    image: pgcli
    container_name: "pgcli"
    command: /usr/local/bin/pgcli postgres://postgres:postgres@db:5432/test
    stdin_open: true
    tty: true
    volumes:
      - ".:/work"
    depends_on:
      - db
volumes:
  db-data:
    driver: local


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

・pgcliのgithubリポジトリ
https://github.com/dbcli/pgcli

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

0 件のコメント:

コメントを投稿