2.9 KiB
Hoshpoint
اجرای پروژه با Docker در Production
ابتدا Docker Desktop را اجرا کنید و فایل env پروداکشن را بسازید:
cp .env.production.example .env.production
php artisan key:generate --show
خروجی را کپی کنید و داخل .env.production بگذارید (خط APP_KEY نباید خالی بماند):
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
سپس APP_URL، HTTP_PORT، DB_PASSWORD، MARIADB_PASSWORD و MARIADB_ROOT_PASSWORD را هم تغییر دهید. مقدار پیشفرض HTTP_PORT=8080 است.
اگر قبلاً بدون APP_KEY کانتینرها را بالا آوردهاید، بعد از پر کردن کلید اینها را اجرا کنید:
docker compose --env-file .env.production exec app php artisan config:clear
docker compose --env-file .env.production restart app queue scheduler
برای build کردن imageها:
docker compose --env-file .env.production build
اول دیتابیس را بالا بیاورید:
docker compose --env-file .env.production up -d mariadb
بعد migrationها را اجرا کنید:
docker compose --env-file .env.production run --rm app php artisan migrate --force --seed
حالا همه سرویسها را بالا بیاورید:
docker compose --env-file .env.production up -d
سایت از طریق پورت تنظیمشده در HTTP_PORT در دسترس است. مقدار پیشفرض:
http://localhost:8080
برای تغییر پورت، مقدار زیر را در .env.production عوض کنید و سرویس nginx را دوباره بالا بیاورید:
HTTP_PORT=8081
docker compose --env-file .env.production up -d --force-recreate nginx
برای دیدن وضعیت سرویسها:
docker compose --env-file .env.production ps
برای دیدن لاگها:
docker compose --env-file .env.production logs -f
برای اجرای دستورهای Artisan داخل کانتینر:
docker compose --env-file .env.production exec app php artisan about
برای متوقف کردن سرویسها:
docker compose --env-file .env.production down
برای حذف کامل دیتای دیتابیس و volumeها، فقط وقتی مطمئن هستید:
docker compose --env-file .env.production down -v
خطای No application encryption key has been specified
یعنی APP_KEY در .env.production خالی است یا بعد از تغییر env، cache قدیمی مانده.
- مقدار
APP_KEYرا در.env.productionتنظیم کنید. - cache را پاک و سرویسها را restart کنید:
docker compose --env-file .env.production exec app php artisan config:clear
docker compose --env-file .env.production restart app queue scheduler