# CLAUDE.md — phpfpm Helm Chart ## リポジトリ概要 Raspberry Pi などのベアメタルで稼働することを想定した、Kubernetes 上で動作する Nginx + PHP-FPM の Helm チャート。 - **Gitea リポジトリ**: `ssh://git@192.168.9.65/helmchart/phpfpm` - **Helm リポジトリ**: `https://git.cafepieters.com/api/packages/helmchart/helm` ## 実行環境について **PHP の実行環境(インタープリタ)はこのリポジトリには含まれていない。** チャートは `docker.io/php:-fpm-alpine` の公式イメージを Kubernetes 上で起動するものであり、PHP コードそのものは PVC(`/var/www/html`)に別途配置する必要がある。 ## Git コミット情報 | 項目 | 値 | |------|-----| | 名前 | Claude | | メール | claude@cafepieters.com | | SSH キー | `P:\Claude\.ssh\id_claude` | ## チャート改修履歴 ### Composerデフォルト導入先を /composer に変更(2026-07-19, v8.5.6-c) `/var/www` はWebルート `/var/www/html` の親のため、ネストマウントでPVCの `composer` サブパス内に空の `html/` が生成されていた。デフォルトをWebルートと親子関係にない `/composer` に変更してネストを解消。autoloadは `require_once '/composer/vendor/autoload.php';`(values.yaml のコメントにも明記)。 **対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `README.md`, `Chart.yaml`, `CHANGELOG-8.5.6-c.md` ### 旧composer.jsonの自動移行 + mbstring依存の自動追加(2026-07-19, v8.5.6-b) v8.5.6-a のフォローアップ。起動時に `workingDir` に `composer.json` が無く旧Webルート `/var/www/html` にある場合、`composer.json` / `composer.lock` / `vendor/` を自動移行する。また `additionalPhpExtensions` に `mbstring` 指定時、ビルドに必要な `oniguruma-dev` を自動追加(GDと同じ仕組み)。 なお、PVC上の `composer/html/`(空ディレクトリ)はネストマウントのマウントポイント作成による正常な副産物で、実害なし。 **対象ファイル**: `templates/deployment.yaml`, `README.md`, `Chart.yaml`, `CHANGELOG-8.5.6-b.md` ### composer.workingDir — Composer導入先のWebルート外への変更(2026-07-19, v8.5.6-a) Composerの導入先をWebルート `/var/www/html` からWebルート外の `/var/www` に変更し、`vendor/` や `composer.json` がWeb経由で公開されないようにした。`values.yaml` の `composer.workingDir` で導入先を変更可能(旧動作に戻すには `"/var/www/html"` を指定)。導入先がWebルート以外の場合、PVCの `composer` サブパスをマウントして永続化する。 PHP側の読み込みは `require_once '/var/www/vendor/autoload.php';`。 **対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `README.md`, `Chart.yaml`, `CHANGELOG-8.5.6-a.md` ### phpEnv — 汎用 PHP 環境変数サポート(2026-04-17) `values.yaml` に `phpEnv` セクションを追加し、DB 接続情報と同様に任意のキーと値を PHP-FPM コンテナの環境変数として渡せるようにした。 ```yaml phpEnv: API_KEY: "your-api-key" STRIPE_SECRET: "sk_live_..." REDIS_URL: "redis://localhost:6379" ``` PHP 側では `$_ENV['API_KEY']` または `getenv('API_KEY')` で取得できる。 **対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `README.md`