browser-sec-lab/docker/php/entrypoint.sh
2026-07-04 21:18:42 +03:30

40 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 "$@"