fix: useComposerJson使用時のYAML parse errorを修正 (v8.5.6-d)
Helm Chart Release / release-chart (push) Successful in 5s

heredoc内の {{ .Values.composer.composerJson }} がインデント無しで
展開され、複数行JSONの2行目以降が行頭に出力されてブロックスカラーを
破壊していた潜在バグを修正。trim | nindent 14 で展開するよう変更
(composerLock も同様)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-19 16:31:03 +09:00
co-authored by Claude Fable 5
parent 76a4a7874b
commit be1c82e968
4 changed files with 61 additions and 3 deletions
+52
View File
@@ -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)
+6
View File
@@ -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 ### 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 のコメントにも明記)。 `/var/www` はWebルート `/var/www/html` の親のため、ネストマウントでPVCの `composer` サブパス内に空の `html/` が生成されていた。デフォルトをWebルートと親子関係にない `/composer` に変更してネストを解消。autoloadは `require_once '/composer/vendor/autoload.php';`values.yaml のコメントにも明記)。
+1 -1
View File
@@ -2,6 +2,6 @@ apiVersion: v2
name: phpfpm name: phpfpm
description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support
type: application type: application
version: 8.5.6-c version: 8.5.6-d
appVersion: "8.5.6" appVersion: "8.5.6"
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png
+2 -2
View File
@@ -121,13 +121,13 @@ spec:
# composer.jsonファイルを使用 # composer.jsonファイルを使用
echo "Creating composer.json from values..." echo "Creating composer.json from values..."
cat > composer.json << 'COMPOSER_JSON_EOF' cat > composer.json << 'COMPOSER_JSON_EOF'
{{ .Values.composer.composerJson }} {{- .Values.composer.composerJson | trim | nindent 14 }}
COMPOSER_JSON_EOF COMPOSER_JSON_EOF
{{- if .Values.composer.composerLock }} {{- if .Values.composer.composerLock }}
echo "Creating composer.lock from values..." echo "Creating composer.lock from values..."
cat > composer.lock << 'COMPOSER_LOCK_EOF' cat > composer.lock << 'COMPOSER_LOCK_EOF'
{{ .Values.composer.composerLock }} {{- .Values.composer.composerLock | trim | nindent 14 }}
COMPOSER_LOCK_EOF COMPOSER_LOCK_EOF
{{- end }} {{- end }}