From 20375636b4e628e5751723446c9dfa831c23f501 Mon Sep 17 00:00:00 2001 From: Nikaidou Haruki Date: Sat, 4 Jul 2026 19:43:17 +0900 Subject: [PATCH] Update README.md --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/README.md b/README.md index ac3ad67..d714c72 100644 --- a/README.md +++ b/README.md @@ -103,3 +103,46 @@ mix precommit ``` > テストは `DATABASE_URL` の接続先サーバー上に、専用の `..._test` データベースを自動的に作成して実行します。 + +## Docker でのデプロイ + +Docker を使って本番用リリースをビルド・起動できます。データベース接続 URL は、コンテナの **起動時** に環境変数 `DATABASE_URL` から読み込まれます(イメージには埋め込まれません)。 + +### 1. イメージのビルド + +```bash +docker build -t rsh26pool:latest . +``` + +### 2. マイグレーションの実行 + +```bash +docker run --rm \ + -e DATABASE_URL="ecto://ユーザー名:パスワード@DBホスト:5432/rsh26pool_prod" \ + -e SECRET_KEY_BASE="$(mix phx.gen.secret)" \ + rsh26pool:latest /app/bin/migrate +``` + +### 3. サーバーの起動 + +```bash +docker run -p 4000:4000 \ + -e DATABASE_URL="ecto://ユーザー名:パスワード@DBホスト:5432/rsh26pool_prod" \ + -e SECRET_KEY_BASE="生成したシークレット" \ + -e PHX_HOST="example.com" \ + rsh26pool:latest +``` + +起動後、ブラウザで [`http://localhost:4000`](http://localhost:4000) にアクセスしてください。 + +### 環境変数 + +| 変数 | 必須 | 説明 | +| --- | --- | --- | +| `DATABASE_URL` | 必須 | データベース接続 URL(例:`ecto://ユーザー名:パスワード@DBホスト:5432/rsh26pool_prod`)。 | +| `SECRET_KEY_BASE` | 必須 | Cookie の署名・暗号化に使用。`mix phx.gen.secret` で生成できます。 | +| `PHX_HOST` | 推奨 | 公開ホスト名。未設定時は `example.com`。 | +| `PORT` | 任意 | 待ち受けポート。既定は `4000`。 | +| `POOL_SIZE` | 任意 | DB コネクションプールのサイズ。既定は `10`。 | + +> 本番設定(`config/prod.exs`)では `force_ssl`(HSTS)が有効です。`localhost` 以外のホストでは `https` にリダイレクトされるため、TLS を終端して `x-forwarded-proto` ヘッダーを付与するリバースプロキシの背後で運用してください。