This commit is contained in:
@@ -34,23 +34,116 @@ spec:
|
|||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
- |
|
- |
|
||||||
echo "Starting PHP-FPM with conditional logic..."
|
echo "Starting PHP-FPM setup process..."
|
||||||
{{- if or .Values.selenium.enabled .Values.externalDatabase.enabled }}
|
|
||||||
(
|
{{- if or .Values.composer.enabled .Values.selenium.enabled .Values.externalDatabase.enabled }}
|
||||||
{{- if .Values.selenium.enabled }}
|
# ========================================
|
||||||
echo "Installing selenium dependencies..."
|
# APKパッケージのインストール
|
||||||
apk add --no-cache curl zip libzip-dev && \
|
# ========================================
|
||||||
docker-php-ext-install zip && \
|
APK_PACKAGES=""
|
||||||
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
|
|
||||||
composer require php-webdriver/webdriver
|
{{- if or .Values.composer.enabled .Values.selenium.enabled }}
|
||||||
|
# Composer本体に必要なパッケージ
|
||||||
|
APK_PACKAGES="$APK_PACKAGES curl zip libzip-dev"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if .Values.externalDatabase.enabled }}
|
{{- if .Values.externalDatabase.enabled }}
|
||||||
echo "Installing pdo_mysql for PHP 8.4 Alpine..."
|
# MySQL/MariaDB接続に必要なパッケージ
|
||||||
apk add --no-cache mysql-client mysql-dev
|
APK_PACKAGES="$APK_PACKAGES mysql-client mysql-dev"
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.composer.additionalApkPackages }}
|
||||||
|
# ユーザー指定の追加APKパッケージ
|
||||||
|
{{- range .Values.composer.additionalApkPackages }}
|
||||||
|
APK_PACKAGES="$APK_PACKAGES {{ . }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
if [ -n "$APK_PACKAGES" ]; then
|
||||||
|
echo "Installing APK packages: $APK_PACKAGES"
|
||||||
|
apk add --no-cache $APK_PACKAGES
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# PHP拡張のインストール
|
||||||
|
# ========================================
|
||||||
|
{{- if or .Values.composer.enabled .Values.selenium.enabled }}
|
||||||
|
echo "Installing PHP zip extension..."
|
||||||
|
docker-php-ext-install zip
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.externalDatabase.enabled }}
|
||||||
|
echo "Installing pdo_mysql extension..."
|
||||||
docker-php-ext-install pdo_mysql
|
docker-php-ext-install pdo_mysql
|
||||||
{{- end }}
|
{{- end }}
|
||||||
)
|
|
||||||
|
{{- if .Values.composer.additionalPhpExtensions }}
|
||||||
|
echo "Installing additional PHP extensions..."
|
||||||
|
{{- range .Values.composer.additionalPhpExtensions }}
|
||||||
|
docker-php-ext-install {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# Composerのインストールと実行
|
||||||
|
# ========================================
|
||||||
|
{{- if or .Values.composer.enabled .Values.selenium.enabled }}
|
||||||
|
echo "Installing Composer..."
|
||||||
|
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||||
|
|
||||||
|
cd /var/www/html
|
||||||
|
|
||||||
|
{{- if .Values.composer.enabled }}
|
||||||
|
# ユーザー定義のComposer設定
|
||||||
|
{{- if .Values.composer.useComposerJson }}
|
||||||
|
# composer.jsonファイルを使用
|
||||||
|
echo "Creating composer.json from values..."
|
||||||
|
cat > composer.json << 'COMPOSER_JSON_EOF'
|
||||||
|
{{ .Values.composer.composerJson }}
|
||||||
|
COMPOSER_JSON_EOF
|
||||||
|
|
||||||
|
{{- if .Values.composer.composerLock }}
|
||||||
|
echo "Creating composer.lock from values..."
|
||||||
|
cat > composer.lock << 'COMPOSER_LOCK_EOF'
|
||||||
|
{{ .Values.composer.composerLock }}
|
||||||
|
COMPOSER_LOCK_EOF
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
echo "Running composer install..."
|
||||||
|
composer install {{ .Values.composer.installOptions }}
|
||||||
|
|
||||||
|
{{- else if .Values.composer.packages }}
|
||||||
|
# パッケージリストから直接インストール
|
||||||
|
echo "Installing Composer packages..."
|
||||||
|
{{- range .Values.composer.packages }}
|
||||||
|
composer require {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.composer.installOptions }}
|
||||||
|
# オプティマイズ実行
|
||||||
|
composer install {{ .Values.composer.installOptions }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- else }}
|
||||||
|
# composer.jsonが既に存在する場合はそれを使用
|
||||||
|
if [ -f composer.json ]; then
|
||||||
|
echo "Found existing composer.json, running composer install..."
|
||||||
|
composer install {{ .Values.composer.installOptions }}
|
||||||
|
else
|
||||||
|
echo "No composer configuration found, skipping package installation"
|
||||||
|
fi
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.selenium.enabled }}
|
||||||
|
# Selenium用のパッケージインストール(レガシー互換性)
|
||||||
|
echo "Installing Selenium WebDriver package..."
|
||||||
|
composer require php-webdriver/webdriver
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
echo "Setup complete, starting PHP-FPM..."
|
||||||
php-fpm
|
php-fpm
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 9000 # PHP-FPMは9000ポートでリッスン
|
- containerPort: 9000 # PHP-FPMは9000ポートでリッスン
|
||||||
@@ -58,6 +151,10 @@ spec:
|
|||||||
- name: app-storage
|
- name: app-storage
|
||||||
mountPath: /var/www/html
|
mountPath: /var/www/html
|
||||||
subPath: html
|
subPath: html
|
||||||
|
{{- if and .Values.composer.enabled .Values.composer.useComposerJson }}
|
||||||
|
- name: composer-config
|
||||||
|
mountPath: /tmp/composer-init
|
||||||
|
{{- end }}
|
||||||
env:
|
env:
|
||||||
{{- if .Values.externalDatabase.enabled }}
|
{{- if .Values.externalDatabase.enabled }}
|
||||||
- name: DB_HOST
|
- name: DB_HOST
|
||||||
@@ -101,3 +198,8 @@ spec:
|
|||||||
- name: nginx-config
|
- name: nginx-config
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "phpfpm.fullname" . }}-nginx-config
|
name: {{ include "phpfpm.fullname" . }}-nginx-config
|
||||||
|
{{- if and .Values.composer.enabled .Values.composer.useComposerJson }}
|
||||||
|
- name: composer-config
|
||||||
|
configMap:
|
||||||
|
name: {{ include "phpfpm.fullname" . }}-composer-config
|
||||||
|
{{- end }}
|
||||||
Reference in New Issue
Block a user