Helm Chart Release / release-chart (push) Successful in 6s
php-fpm コンテナのマウントを html サブパスのみから PVCルート (/var/www)に変更。html/ は公開フォルダ、それ以外は非公開ファイル の格納先として利用可能に。nginx は従来どおり html サブパスのみ マウントするため、非公開ディレクトリがWebに公開されることはない。 あわせて /composer のPVC永続化マウントを廃止し、Pod再起動ごとに クリーン再構築される使い捨て領域とした(マルウェア書き込み対策)。 永続化したい場合は composer.workingDir に /var/www/composer 等を指定。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
73 lines
4.7 KiB
Markdown
73 lines
4.7 KiB
Markdown
# 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:<tag>-fpm-alpine` の公式イメージを Kubernetes 上で起動するものであり、PHP コードそのものは PVC(`/var/www/html`)に別途配置する必要がある。
|
||
|
||
## Git コミット情報
|
||
|
||
| 項目 | 値 |
|
||
|------|-----|
|
||
| 名前 | Claude |
|
||
| メール | claude@cafepieters.com |
|
||
| SSH キー | `P:\Claude\.ssh\id_claude` |
|
||
|
||
## チャート改修履歴
|
||
|
||
### PVCルートを /var/www にマウント + /composer を使い捨て化(2026-07-19, v8.5.6-e)
|
||
|
||
php-fpm コンテナのマウントを「`html` サブパスのみ」から「PVCルート → `/var/www`」に変更。`html/` は公開フォルダ、それ以外(`/var/www/<任意>`)は非公開ファイルの格納先として使える。nginx は `html` サブパスのみマウントするため非公開分は公開されない。あわせて `/composer` のPVC永続化マウントを廃止し、Pod再起動ごとにクリーン再構築される使い捨て領域とした(マルウェア混入対策、ユーザー要望)。永続化したい場合は `workingDir` に `/var/www/composer` 等を指定。
|
||
|
||
**対象ファイル**: `templates/deployment.yaml`, `values.yaml`, `README.md`, `Chart.yaml`, `CHANGELOG-8.5.6-e.md`
|
||
|
||
### useComposerJson の YAML parse error 修正(2026-07-19, v8.5.6-d)
|
||
|
||
`useComposerJson: true` 指定時、heredoc 内の `{{ .Values.composer.composerJson }}` がインデント無しで展開され、複数行JSONの2行目以降がブロックスカラーを破壊して YAML parse error になる潜在バグを修正。`trim | nindent 14` で展開するよう変更(`composerLock` も同様)。
|
||
|
||
**対象ファイル**: `templates/deployment.yaml`, `Chart.yaml`, `CHANGELOG-8.5.6-d.md`
|
||
|
||
### 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`
|