feat(docker): add Docker configuration and production environment setup
This commit is contained in:
108
README.md
108
README.md
@@ -1 +1,107 @@
|
||||
### Hoshpoint
|
||||
### Hoshpoint
|
||||
|
||||
## اجرای پروژه با Docker در Production
|
||||
|
||||
ابتدا Docker Desktop را اجرا کنید و فایل env پروداکشن را بسازید:
|
||||
|
||||
```bash
|
||||
cp .env.production.example .env.production
|
||||
php artisan key:generate --show
|
||||
```
|
||||
|
||||
خروجی را کپی کنید و داخل `.env.production` بگذارید (خط `APP_KEY` نباید خالی بماند):
|
||||
|
||||
```env
|
||||
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
```
|
||||
|
||||
سپس `APP_URL`، `HTTP_PORT`، `DB_PASSWORD`، `MARIADB_PASSWORD` و `MARIADB_ROOT_PASSWORD` را هم تغییر دهید. مقدار پیشفرض `HTTP_PORT=8080` است.
|
||||
|
||||
اگر قبلاً بدون `APP_KEY` کانتینرها را بالا آوردهاید، بعد از پر کردن کلید اینها را اجرا کنید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production exec app php artisan config:clear
|
||||
docker compose --env-file .env.production restart app queue scheduler
|
||||
```
|
||||
|
||||
برای build کردن imageها:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production build
|
||||
```
|
||||
|
||||
اول دیتابیس را بالا بیاورید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production up -d mariadb
|
||||
```
|
||||
|
||||
بعد migrationها را اجرا کنید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production run --rm app php artisan migrate --force --seed
|
||||
```
|
||||
|
||||
حالا همه سرویسها را بالا بیاورید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production up -d
|
||||
```
|
||||
|
||||
سایت از طریق پورت تنظیمشده در `HTTP_PORT` در دسترس است. مقدار پیشفرض:
|
||||
|
||||
```text
|
||||
http://localhost:8080
|
||||
```
|
||||
|
||||
برای تغییر پورت، مقدار زیر را در `.env.production` عوض کنید و سرویس `nginx` را دوباره بالا بیاورید:
|
||||
|
||||
```env
|
||||
HTTP_PORT=8081
|
||||
```
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production up -d --force-recreate nginx
|
||||
```
|
||||
|
||||
برای دیدن وضعیت سرویسها:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production ps
|
||||
```
|
||||
|
||||
برای دیدن لاگها:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production logs -f
|
||||
```
|
||||
|
||||
برای اجرای دستورهای Artisan داخل کانتینر:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production exec app php artisan about
|
||||
```
|
||||
|
||||
برای متوقف کردن سرویسها:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production down
|
||||
```
|
||||
|
||||
برای حذف کامل دیتای دیتابیس و volumeها، فقط وقتی مطمئن هستید:
|
||||
|
||||
```bash
|
||||
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 کنید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production exec app php artisan config:clear
|
||||
docker compose --env-file .env.production restart app queue scheduler
|
||||
```
|
||||
Reference in New Issue
Block a user