2018年1月9日火曜日

Dockerでpgwebがインストールされたコンテナ(Alpine 3.7)を構築する

pgwebはPostgreSQLに対応するwebフロントエンドです。
以下の手順で、pgwebとPostgreSQLのコンテナを構築・実行します。

○構築方法
1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t pgweb .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
  && cp /pgweb_linux_amd64 /opt/pgweb \
  && rm /pgweb_linux_amd64
EXPOSE 8080
VOLUME /opt/pgweb
CMD ["/opt/pgweb/pgweb_linux_amd64", "--sessions", "--bind=0.0.0.0", "--listen=8080"]

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

docker-compose.yml
version: "2"
services:
  pgweb:
    image: pgweb
    container_name: "pgweb"
    volumes:
      - "pgweb-data:/opt/pgweb"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres:9.6-alpine
    environment:
      POSTGRES_USER: pgweb
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "postgres-data:/var/lib/postgresql/data"
volumes:
  postgres-data:
    driver: local
  pgweb-data:
    driver: local

3. ブラウザからhttp://:8080/にアクセス

○pgwebの画面


○その他
・pgwebとMySQLコンテナの停止・削除(docker-compose.ymlがあるフォルダで実行)
docker-compose down

・永続化ボリュームの削除
docker volume rm pgweb_pgweb-data
docker volume rm pgweb_postgres-data


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

0 件のコメント:

コメントを投稿