LoginSignup
21
23

More than 5 years have passed since last update.

pgadmin4/dockerの接続サーバー設定の永続化

Last updated at Posted at 2019-03-02

はじめに

 docker-composeでPostgreSQLとpgadminのコンテナーを立ち上げ、PostgreSQLはデータの永続化、pgadminはサーバ接続等、設定情報の永続化を行います。コンテナーは基本的に削除すると起動時に操作した結果が消えてしまいます。

 PostgreSQLのデータ永続化は色々と紹介されてますが、pgadmin4の方は見かけず、毎回起動する度にpostgresコンテナとの接続を行うのが億劫だったのでこちらも設定情報を残すようにします。

pgadmin4とは

  • GUIでPostgreSQLのデータベース管理を行えるクライアントソフトです
  • 以下のようなUIです

image.png

image.png

公式ドキュメント

 接続サーバーの設定情報をjson形式でexport/importすればいけるようなことが書いてありましたが、こちらで試したところうまくいきませんでした。
https://www.pgadmin.org/docs/pgadmin4/dev/export_import_servers.html

結論

以下のようにdocker-compose.ymlを書きます。

単にpgadmin4コンテナの中の"/var/lib/pgadmin"をvolumeするだけでいけました。
postgresの方の永続化は"/var/lib/postgresql/data"をvolumeすればいけます。

これで初回のコンテナ起動時のみpstgresqlサーバーとの接続を行えば、次回以降の起動時には自動してくれるようになります。

docker-compose.yml

version: '3.7'
services:

    postgres:
        image: postgres:11.2
        container_name: postgres
        ports:
            - 5432:5432
        volumes:
            - ./docker/postgres/init.d:/docker-entrypoint-initdb.d
            - ./docker/postgres/pgdata:/var/lib/postgresql/data
        environment:
            POSTGRES_USER: root
            POSTGRES_PASSWORD: root
            POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
        hostname: postgres
        restart: always
        user: root

    pgadmin4:
        image: dpage/pgadmin4:4.2
        container_name: pgadmin4
        ports:
            - 8000:80
        volumes:
            - ./docker/pgadmin4:/var/lib/pgadmin
        environment:
            PGADMIN_DEFAULT_EMAIL: root
            PGADMIN_DEFAULT_PASSWORD: root
        hostname: pgadmin4
        depends_on:
          - postgres
        restart: always
21
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
23