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の導入先を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
|
||||
description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support
|
||||
type: application
|
||||
version: 8.5.6-a
|
||||
version: 8.5.6-b
|
||||
appVersion: "8.5.6"
|
||||
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ルートに `composer.json` / `composer.lock` / `vendor/` が残っている場合、Pod起動時に自動的に `workingDir` へ移行されます(v8.5.6-b以降)。
|
||||
|
||||
### 例3: composer.jsonを使用
|
||||
|
||||
|
||||
@@ -64,13 +64,16 @@ spec:
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
# GD拡張の依存パッケージを自動的に追加
|
||||
# PHP拡張(gd / mbstring)の依存パッケージを自動的に追加
|
||||
{{- if .Values.composer.additionalPhpExtensions }}
|
||||
for ext in {{ join " " .Values.composer.additionalPhpExtensions }}; do
|
||||
if [ "$ext" = "gd" ]; then
|
||||
echo "GD extension detected, adding required dependencies..."
|
||||
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
|
||||
done
|
||||
{{- end }}
|
||||
@@ -143,6 +146,13 @@ spec:
|
||||
{{- end }}
|
||||
|
||||
{{- 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が既に存在する場合はそれを使用
|
||||
if [ -f composer.json ]; then
|
||||
echo "Found existing composer.json, running composer install..."
|
||||
|
||||
Reference in New Issue
Block a user