📝 設定ファイル解説: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も全てクリアされリストアされます。