feat: Python導入オプションを追加 (v8.5.8-a)
Helm Chart Release / release-chart (push) Successful in 5s

PHPからPythonスクリプトを呼び出す用途向けに、values.yamlの設定
だけでPython仮想環境(venv)を導入できるようにした。既存のComposer
サポートと同じ設計方針(デフォルト導入先はWebルート外・PVC非マウ
ントの使い捨て領域、packages/useRequirementsTxtの二択、
additionalApkPackagesでネイティブ拡張ビルド対応)を踏襲。

- values.yaml: python セクション新設
- templates/deployment.yaml: python3/py3-pipのAPKインストール、
  venv構築、pip install処理を追加(requirements.txtの展開は
  trim | nindent 14 でYAML破壊を回避、v8.5.6-dと同じ手法)
- README.md: パラメータ表・使用例(例12)・注意事項を追加

PHPからは exec('/venv/bin/python3 script.py') で呼び出す。

自動更新ワークフローによりPHP 8.5.8へのフルリリース(v8.5.8)が
先行して行われたため、本機能はそのタグの上に手動リリース 8.5.8-a
として適用する。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 21:23:20 +09:00
co-authored by Claude Fable 5
parent 6e600bb308
commit 3d384ab72e
6 changed files with 208 additions and 5 deletions
+58
View File
@@ -0,0 +1,58 @@
# Changelog - Version 8.5.8-a
## 新機能
### Python導入オプションの追加
PHPからPythonスクリプトを呼び出す用途(データ処理・機械学習ライブラリの利用など)向けに、`values.yaml` の設定だけでPython仮想環境(venv)を導入できるようにしました。既存のComposerサポートと同じ設計方針を踏襲しています。
#### 主な変更点
1. **values.yaml**
- `python` セクションを新設
- `enabled`: Python有効化
- `venvDir`: venv導入先(デフォルト `/venv` — Webルート外かつPVCにマウントされない使い捨て領域)
- `packages` / `useRequirementsTxt` / `requirementsTxt`: pipパッケージ指定方法(Composerの `packages` / `useComposerJson` と同じ構造)
- `installOptions`: pip installオプション(デフォルト `--no-cache-dir`
- `additionalApkPackages`: ネイティブ拡張ビルド用の追加APKパッケージ
2. **templates/deployment.yaml**
- `python.enabled` 時に `python3` / `py3-pip` をAPKでインストール
- `python3 -m venv` で仮想環境を構築
- `useRequirementsTxt` / `packages` に応じてpipインストールを実行
- `requirementsTxt` の複数行内容は `trim | nindent 14` で展開(v8.5.6-d のComposer修正と同じ手法でYAML破壊を回避)
3. **README.md**
- パラメータ表・使用例(例12)を追加
- Alpine(musl)向け事前ビルドwheelが無いパッケージ(numpy等)はビルドに時間がかかる旨の注意書きを追加
## 設計方針(Composerとの一貫性)
- デフォルトの `/venv` はPVCにマウントされず、**Pod再起動のたびにクリーンな環境へ再構築される使い捨て領域**です。不正アクセスで書き込まれても再起動で消えます。
- 永続化したい場合は `python.venvDir``/var/www` 配下のパスを指定してください(例: `/var/www/venv`)。
## 使用例
```yaml
python:
enabled: true
useRequirementsTxt: true
requirementsTxt: |
requests>=2.31.0
pandas>=2.0.0
```
PHPからの呼び出し:
```php
exec('/venv/bin/python3 /var/www/scripts/process.py 2>&1', $output, $exitCode);
```
## 互換性
- デフォルトは `enabled: false` のため、既存環境への影響はありません。
---
**リリース日**: 2026-07-19
**担当**: プロサーバーエンジニア(Claude)