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