本番同等の環境をローカルで起動し、サーバーのデータで動作確認するための手順。
| ファイル | 用途 |
|---|---|
docker-compose.local.yml |
本番用Dockerfileを使用、Traefikなし、ポート直接公開 |
deploy_local.sh |
ローカル環境のビルド・起動 |
sync_db.sh |
サーバーのDBダンプをローカルに取り込む |
.env |
本番と同じ環境変数(git管理外) |
アクセス先:
cp .env.production.example .env
# .env に本番と同じ値を設定する
bash deploy_local.sh
ビルド(初回は10〜15分)→ 起動 → マイグレーションが自動実行される。
サーバー側で実行(keinasystemユーザーで):
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
ローカル側で実行:
bash sync_db.sh
sync_db.shはリストア後に自動でマイグレーションを実行する。サーバーより新しいマイグレーションがローカルにある場合でも正しく動作する。
# 停止中の場合は起動
docker compose -f docker-compose.local.yml up -d
# 停止
docker compose -f docker-compose.local.yml down
コードを変更した場合は再ビルドが必要:
bash deploy_local.sh
サーバーのデータをローカルに反映したい時。
サーバー側(keinasystemユーザーで):
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
ローカル側:
bash sync_db.sh
注意: ローカルのDBデータは上書きされる。ローカルで加えた変更は失われる。
.env は gitignore 対象(コミットしない)postgres_data_local ボリュームに保存(本番の postgres_data とは別)sync_db.sh は SSH設定 keinafarm(~/.ssh/config)を使用