(なんか9.3と9.4版がビルド通らなくてイメージ作れてないんですがあとでどうにかします...。postgres.confの編集pg_rmanを使うためには、postgresql.confを編集してPostgres側でWALをアーカイブするように設定する必要がある。デフォルトでコメントアウトされている部分を編集し、以下のように有効化する。archive_commandで書いたコピー先/archiveは実際はホスト側のストレージで、volumeとしてマウントする。このため、下で説明するようにdocker-compose.ymlにも設定が必要である。/host/path/to/wal_archive:/archiveこのような感じで、ホスト上の/host/path/to/wal_archiveをコンテナ内の/archiveに対応付ける。pg_rmanのコンテナを追加する。dbこのような感じで/pg_dataを実際のPosgtresのデータの実体の場所(=dbでマウントする場所)、/backupをバックアップを置きたい場所に対応付ける。depends_onを設定することで、ネットワーク的にrmanコンテナからdbコンテナをdbというホスト名で見えるようにする。userを設定したのはデフォルトではposgtresのコンテナがUID:GID=70:0で動いてファイルを作るので、バックアップのそれに合わせておきたかったということで気分の問題。pg_rmanはPostgresのバージョンに応じて別のビルドを使う必要があるので、実際はdbとrmanのイメージをタグで固定したほうが良いと思う。あとは、.env.productionに環境変数を設定して、dbのホスト名と必要な資格情報を与えてあげるだけだ。こんな感じで、PGHOSTにDB_HOSTを、PGUSERにDB_USERを...という感じで同じものを与える。-d;でコンテナたちを作り直す。upの時に必ず無駄にコンテナが作られてしまうので悲しい。rmanとかしてしまっても良い。バックアップということで準備ができたので早速バックアップする。--progressでバックアップする。validateで検証する。