📝 設定ファイル解説:config.js
設定ファイル詳説:PostgreSQLコンテナ設定
config.js 設定例
... postgresql: { image: 'postgres:9', ports: ['5432:5432'], database: 'pgdb01', user: 'user_g', password: '123456789', // same root password hosts: ['sub.db'], volume_locked: false, dump: { rotations: 3, filename: 'dump.sql', } }, postgresql_v8: { image: 'postgres:8', ports: ['5433:5432'], database: 'old-pgdb', user: 'user_g', password: '123456789', // same root password hosts: [ 'v8.db', 'old-db.xxx.com', ], volume_locked: true, dump: { rotations: 0, filename: 'dump.sql', } }, ...
postgresql~:
上記例では postgresql
と postgresql_v8
の2つが設定されており、Lampman 起動時に2つのPostgreSQLコンテナが立ち上がります。
PostgreSQLを複数設定したい場合は、この2つ目のように postgresql_~
から始まるキー名で複数定義しておくことで、それぞれ別の設定でPostgreSQLコンテナが立ち上がります。
image:
使用するPostgreSQLイメージを指定します。
Docker Hub に上がっている公式イメージでもローカルでビルドした自作のものでもOKです。
例:image: 'postgres:9',
ports:
postgresqlに接続ポート指定をdocker 形式の文字列で指定できます。コンテナ側では5432
ポートで起動しているので、:
の左側にホスト側で受けたいポート番号を指定してください。
例:port: ['5432:5432'],
database:
作成するデータベース名を指定してください。
例:database: 'db001',
user:
作成するユーザー名を指定してください。
例:user: 'user123',
password:
接続パスワードを指定してください。
例:password: '123456',
または、設定ファイルに直接パスワードを書きたくない場合は、
.env
ファイルや環境変数LAMPMAN_POSTGRESQL_PASSWORD
等にセットしておき以下のようにすることも可能です。
例:password: process.env.LAMPMAN_POSTGRESQL_PASSWORD,
hosts:
lampman
から接続する際のホスト名を指定できます。実際のPostgreSQLサーバの接続先URLを指定することで、本番と同様の設定のまま接続できるようになる便利機能です。
例:hosts: [ 'main.db', 'db-server.hogehoge.com' ],
上記の例では、
lampman
コンテナからPostgreSQL接続先にmain.db
またはdbserver.hogehoge.com
を指定することで Lampman で作成された postgresql コンテナに接続できるようになります。
(内部では hosts ファイルを書き換えて指定ホストをコンテナのIPに書き換えています)
ただし、localhost
は指定できません。volume_locked:
Lampman で管理する上でボリュームを削除されにくくすることができます。
Lampman のコマンドにはlamp up -f
やlamp sweep
やlamp reject
など、ボリュームを簡単に消してしまう強力なコマンドが多々あります。うっかり削除されては困るボリュームをロックすることでlamp reject --locked
でしか削除できないようになります。(ボリューム名の頭にlocked_
が付きます)true
... ボリュームをロックします。false
... ボリュームをロックしません。
※ただし、あくまで Lampman 側がそう認識するだけで、Docker 側では無関係に削除できてしまうので注意してください。dump:
ダンプファイルについての設定です。rotations:
ローテーション数を指定できます。例えば 3 とするとdump.sql.1
,dump.sql.2
,dump.sql.3
までダンプファイルのバックアップがローテーションされて残ります。
例:rotations: 3,
filename:
ダンプされるファイル名を指定できます。出力先のパスはここでは指定できず.lampman/(設定キー名)/*.sql
となります。(出力パスを指定したい場合はlamp psql -d --dump-path=xxx
をご利用ください)
拡張子が*.sql
であれば通常のSQLファイルとしてダンプされ、*.sql.gz
が指定されれば自動的に gunzip で圧縮されてダンプされます。
例:filename: 'dump.sql',
filename: 'old-db.sql.gz',
尚、このダンプファイルが存在している状態で
lamp psql -r
またはlamp up
を行うとダンプファイルからDBにデータがまるっとリストアされます。
※ただし、lamp up
実行時に既に該当ボリュームが存在している場合はリストアしません。lamp up -f
するとDBも全てクリアされリストアされます。