2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30
2026-05-29 12:29:44 +03:30

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 قدیمی مانده.

  1. مقدار APP_KEY را در .env.production تنظیم کنید.
  2. cache را پاک و سرویس‌ها را restart کنید:
docker compose --env-file .env.production exec app php artisan config:clear
docker compose --env-file .env.production restart app queue scheduler
Description
No description provided
Readme 2.5 MiB
Languages
PHP 63.6%
Blade 34.7%
Dockerfile 1%
Shell 0.4%
JavaScript 0.2%
Other 0.1%