diff --git a/CHANGELOG-8.5.6-d.md b/CHANGELOG-8.5.6-d.md new file mode 100644 index 0000000..726b63e --- /dev/null +++ b/CHANGELOG-8.5.6-d.md @@ -0,0 +1,52 @@ +# Changelog - Version 8.5.6-d + +## 修正 + +### useComposerJson 使用時の YAML parse error を修正 + +`composer.useComposerJson: true` を指定すると、以下のエラーでデプロイに失敗する問題を修正しました。 + +``` +YAML parse error on phpfpm/templates/deployment.yaml: +error converting YAML to JSON: yaml: line 96: did not find expected key. +``` + +**原因**: `templates/deployment.yaml` の heredoc 内で `{{ .Values.composer.composerJson }}` を +インデント処理なしで展開していたため、複数行の JSON の2行目以降が行頭に出力され、 +YAML のブロックスカラー構造を破壊していました(`useComposerJson` 経路の潜在バグ)。 + +**対応**: `composerJson` / `composerLock` の展開を `trim | nindent 14` に変更し、 +ブロックスカラーのインデントに揃えて出力するようにしました。 +コンテナ内に書き出される `composer.json` / `composer.lock` は行頭からのクリーンな JSON になります。 + +## アップグレード手順 + +```bash +helm repo update +helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-d -f values.yaml +``` + +## 使用例 + +```yaml +composer: + enabled: true + useComposerJson: true + composerJson: | + { + "require": { + "phpoffice/phpspreadsheet": "^2.0" + } + } +``` + +PHPコードからの読み込み: + +```php +require_once '/composer/vendor/autoload.php'; +``` + +--- + +**リリース日**: 2026-07-19 +**担当**: プロサーバーエンジニア(Claude) diff --git a/CLAUDE.md b/CLAUDE.md index b9168e5..7d60268 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,6 +22,12 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube ## チャート改修履歴 +### 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 のコメントにも明記)。 diff --git a/Chart.yaml b/Chart.yaml index 735e21d..52841de 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -2,6 +2,6 @@ apiVersion: v2 name: phpfpm description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support type: application -version: 8.5.6-c +version: 8.5.6-d appVersion: "8.5.6" icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png diff --git a/templates/deployment.yaml b/templates/deployment.yaml index b5239bf..0225d77 100644 --- a/templates/deployment.yaml +++ b/templates/deployment.yaml @@ -121,13 +121,13 @@ spec: # composer.jsonファイルを使用 echo "Creating composer.json from values..." cat > composer.json << 'COMPOSER_JSON_EOF' - {{ .Values.composer.composerJson }} + {{- .Values.composer.composerJson | trim | nindent 14 }} COMPOSER_JSON_EOF {{- if .Values.composer.composerLock }} echo "Creating composer.lock from values..." cat > composer.lock << 'COMPOSER_LOCK_EOF' - {{ .Values.composer.composerLock }} + {{- .Values.composer.composerLock | trim | nindent 14 }} COMPOSER_LOCK_EOF {{- end }}