Add local production test environment setup

- docker-compose.local.yml: 本番Dockerfile使用・Traefikなし・ポート直接公開
- deploy_local.sh: ローカル環境のビルド・起動スクリプト
- sync_db.sh: サーバーDBダンプをローカルに取り込むスクリプト
- document/20_ローカルテスト環境.md: 手順ドキュメント

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Akira
2026-04-06 13:33:28 +09:00
parent 4a1db5ef27
commit a42ccb5cda
4 changed files with 234 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
# ローカルテスト環境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
```
---
## 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`)を使用