docker-composeでPostgreSQLとpgAdmin4を起動するには

dockerでPosgreSQLを使用する時。

WebベースのpgAdmin4も一緒に起動すると便利かと思います。

同時起動する方法を記録しておこうと思います。

※18.11.16追記:日本語モードに対応した、新しい記事が御座います。宜しければこちらを御覧ください。

以下、古い英語モードの内容となります。


PostgreSQL, pgAdmin4同時起動docker-compose.yaml

次のようなdocker-compose.yamlファイルを作成しました。
※19.7.13:pgadminの設定が保存されるように、volumesを変更しました。

mkdir -p docker/postgresql
cd docker/postgresql
vi docker-compose.yaml
version: '2'
services:
  db:
    image: postgres
    volumes:
      - ./postgresql:/var/lib/postgresql
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: <PostgreSQLユーザ名>
      POSTGRES_PASSWORD: <PostgreSQLパスワード>
      POSTGRES_DB: <PostgreSQLデータベース名>
  adm:
    image: dpage/pgadmin4
    volumes:
      - ./pgadmin:/var/lib/pgadmin
# - ./pgadmin:/var/lib/pgadmin/storage 
    ports:
      - "80:80"
      - "443:443"
    environment:
       PGADMIN_DEFAULT_EMAIL: <pgAdminユーザ名>
       PGADMIN_DEFAULT_PASSWORD: <pgAdminパスワード>

docker-composeを起動します。

docker-compose up -d

イメージがダウンロードされて、PostgreSQLがTCPポート番号5432、pgAdmin4がポート番号80で起動します。

WebブラウザでpgAdmin4にアクセスします。日本語表示も問題無いようです。

pgAdmin4から、docker-compose.yamlに記入したPostgreSQLユーザとパスワードで、PostgreSQLサーバへアクセスすることができました。

pgAdminからデータベースのバックアップを行った場合、pgadminディレクトリにデータが保存されるかと思います。


※18.11.15追記:使用するpostgresqlイメージのバージョンによって、docker-compose.ymlファイルの6行目のvolumesを「/var/lib/postgresql/data」に変更しないと、うまくデータが永続化されない場合があるようです。本格的に使用する前に、テーブルを作成→「docker-compose down」→「docker-compose up」で再起動後、ちゃんとテーブルがあるか確認することをお勧め致します。

スポンサーリンク

フォローする

スポンサーリンク