40 lines
1.6 KiB
Bash
40 lines
1.6 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
echo "[+] Starting Laravel Initialization Script..."
|
||
|
||
# ۱. ساخت پوشههای حیاتی لاراول که احتمال دارد به خاطر مونت شدن حذف شده باشند
|
||
echo "[+] Ensuring Laravel storage and cache directories exist..."
|
||
mkdir -p storage/framework/cache/data \
|
||
storage/framework/views \
|
||
storage/framework/sessions \
|
||
storage/logs \
|
||
bootstrap/cache[cite: 4, 5]
|
||
|
||
# ۲. مدیریت فایل تنظیمات محیطی
|
||
if [ ! -f .env ]; then
|
||
echo "[+] .env file not found, creating from .env.example..."
|
||
cp .env.example .env
|
||
fi
|
||
|
||
# ۳. تولید کلید اختصاصی اپلیکیشن در صورت عدم وجود
|
||
if ! grep -q "APP_KEY=base64:" .env; then
|
||
echo "[+] Generating application key..."
|
||
php artisan key:generate --force
|
||
fi
|
||
|
||
# ۴. پاکسازی کشهای قدیمی فریمورک برای جلوگیری از خطای Valid cache path
|
||
echo "[+] Clearing stale Laravel configurations and views..."
|
||
php artisan config:clear || true
|
||
php artisan view:clear || true
|
||
php artisan cache:clear || true[cite: 7]
|
||
|
||
# ۵. تنظیم دسترسی کامل خواندن و نوشتن برای سازگاری کامل داکر و سیستم میزبان
|
||
echo "[+] Setting permissions for storage and bootstrap/cache..."
|
||
chmod -R 777 storage bootstrap/cache[cite: 5]
|
||
|
||
echo "[+] Laravel is ready! Launching application..."
|
||
|
||
# استفاده از "$@" به جای هاردکد کردن php-fpm باعث میشود کانتینر دستورات CMD را به درستی بپذیرد
|
||
exec "$@"
|