fix: 旧Webルートの composer.json を自動移行、mbstring依存を自動追加 (v8.5.6-b)
Helm Chart Release / release-chart (push) Successful in 8s
Helm Chart Release / release-chart (push) Successful in 8s
v8.5.6-a で導入先を /var/www に変更した際、既存の composer.json が 旧Webルート /var/www/html に残っている環境でインストールが スキップされる問題を修正。起動時に composer.json / composer.lock / vendor/ を workingDir へ自動移行する。 また additionalPhpExtensions に mbstring 指定時、Alpineでのビルドに 必要な oniguruma-dev を自動追加(configure: error: Package requirements (oniguruma) were not met 対策)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
# Changelog - Version 8.5.6-b
|
||||||
|
|
||||||
|
## 修正
|
||||||
|
|
||||||
|
### 旧Webルートにある既存 composer.json の自動移行
|
||||||
|
|
||||||
|
v8.5.6-a で Composer導入先を `/var/www/html` から `/var/www`(`composer.workingDir`)に変更しましたが、
|
||||||
|
`packages` / `useComposerJson` を使わずに既存の `composer.json` を利用していた環境では、
|
||||||
|
旧Webルートに残った `composer.json` を検出できず、
|
||||||
|
「No composer configuration found, skipping package installation」でインストールがスキップされる問題がありました。
|
||||||
|
|
||||||
|
**対応**: 起動時に `workingDir` に `composer.json` が無く、旧Webルート `/var/www/html` に存在する場合、
|
||||||
|
以下のファイルを自動的に `workingDir` へ移行してから `composer install` を実行するようにしました。
|
||||||
|
|
||||||
|
- `composer.json`
|
||||||
|
- `composer.lock`(存在する場合)
|
||||||
|
- `vendor/`(存在する場合 — 移動によりWebルートから排除され、公開リスクも解消されます)
|
||||||
|
|
||||||
|
移行はWebルートから該当ファイルが無くなるため一度だけ実行され、以降の再起動では通常フローで動作します。
|
||||||
|
|
||||||
|
### mbstring 拡張の依存パッケージ自動追加
|
||||||
|
|
||||||
|
`composer.additionalPhpExtensions` に `mbstring` を指定した場合、
|
||||||
|
Alpine 上でのビルドに必要な `oniguruma-dev` が無く
|
||||||
|
`configure: error: Package requirements (oniguruma) were not met` で失敗していました。
|
||||||
|
|
||||||
|
**対応**: GD拡張と同様に、`mbstring` 指定時は `oniguruma-dev` を自動的にAPKパッケージへ追加するようにしました。
|
||||||
|
|
||||||
|
## アップグレード手順
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm repo update
|
||||||
|
helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-b -f values.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Pod再起動時に自動移行が実行されます。PHPコード側の読み込みパスの更新を忘れずに行ってください:
|
||||||
|
|
||||||
|
```php
|
||||||
|
require_once '/var/www/vendor/autoload.php';
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**リリース日**: 2026-07-19
|
||||||
|
**担当**: プロサーバーエンジニア(Claude)
|
||||||
@@ -22,6 +22,14 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube
|
|||||||
|
|
||||||
## チャート改修履歴
|
## チャート改修履歴
|
||||||
|
|
||||||
|
### 旧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.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` サブパスをマウントして永続化する。
|
Composerの導入先をWebルート `/var/www/html` からWebルート外の `/var/www` に変更し、`vendor/` や `composer.json` がWeb経由で公開されないようにした。`values.yaml` の `composer.workingDir` で導入先を変更可能(旧動作に戻すには `"/var/www/html"` を指定)。導入先がWebルート以外の場合、PVCの `composer` サブパスをマウントして永続化する。
|
||||||
|
|||||||
+1
-1
@@ -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-a
|
version: 8.5.6-b
|
||||||
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
|
||||||
|
|||||||
@@ -248,6 +248,8 @@ persistence:
|
|||||||
> ```
|
> ```
|
||||||
>
|
>
|
||||||
> 旧バージョン(Webルート直下 `/var/www/html` に導入)と同じ動作に戻す場合は `composer.workingDir: "/var/www/html"` を指定してください。
|
> 旧バージョン(Webルート直下 `/var/www/html` に導入)と同じ動作に戻す場合は `composer.workingDir: "/var/www/html"` を指定してください。
|
||||||
|
>
|
||||||
|
> **旧バージョンからのアップグレード**: 旧Webルートに `composer.json` / `composer.lock` / `vendor/` が残っている場合、Pod起動時に自動的に `workingDir` へ移行されます(v8.5.6-b以降)。
|
||||||
|
|
||||||
### 例3: composer.jsonを使用
|
### 例3: composer.jsonを使用
|
||||||
|
|
||||||
|
|||||||
@@ -64,13 +64,16 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
# GD拡張の依存パッケージを自動的に追加
|
# PHP拡張(gd / mbstring)の依存パッケージを自動的に追加
|
||||||
{{- if .Values.composer.additionalPhpExtensions }}
|
{{- if .Values.composer.additionalPhpExtensions }}
|
||||||
for ext in {{ join " " .Values.composer.additionalPhpExtensions }}; do
|
for ext in {{ join " " .Values.composer.additionalPhpExtensions }}; do
|
||||||
if [ "$ext" = "gd" ]; then
|
if [ "$ext" = "gd" ]; then
|
||||||
echo "GD extension detected, adding required dependencies..."
|
echo "GD extension detected, adding required dependencies..."
|
||||||
APK_PACKAGES="$APK_PACKAGES libpng-dev libjpeg-turbo-dev freetype-dev"
|
APK_PACKAGES="$APK_PACKAGES libpng-dev libjpeg-turbo-dev freetype-dev"
|
||||||
break
|
fi
|
||||||
|
if [ "$ext" = "mbstring" ]; then
|
||||||
|
echo "mbstring extension detected, adding required dependencies..."
|
||||||
|
APK_PACKAGES="$APK_PACKAGES oniguruma-dev"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -143,6 +146,13 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
# 旧Webルート(/var/www/html)に composer.json がある場合は移行(v8.5.6-a以前からのアップグレード対応)
|
||||||
|
if [ ! -f composer.json ] && [ -f /var/www/html/composer.json ]; then
|
||||||
|
echo "Migrating legacy composer files from /var/www/html to $(pwd)..."
|
||||||
|
mv /var/www/html/composer.json ./composer.json
|
||||||
|
if [ -f /var/www/html/composer.lock ]; then mv /var/www/html/composer.lock ./composer.lock; fi
|
||||||
|
if [ -d /var/www/html/vendor ]; then mv /var/www/html/vendor ./vendor; fi
|
||||||
|
fi
|
||||||
# composer.jsonが既に存在する場合はそれを使用
|
# composer.jsonが既に存在する場合はそれを使用
|
||||||
if [ -f composer.json ]; then
|
if [ -f composer.json ]; then
|
||||||
echo "Found existing composer.json, running composer install..."
|
echo "Found existing composer.json, running composer install..."
|
||||||
|
|||||||
Reference in New Issue
Block a user