refactor(docker): clean up Docker and environment configurations, remove unused proxy settings and files
This commit is contained in:
64
README.md
64
README.md
@@ -17,61 +17,12 @@ 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
|
||||
```
|
||||
|
||||
### حالت fallback با VLESS/Xray
|
||||
|
||||
کانفیگ VLESS داخل `docker/xray/config.local.json` قرار دارد و این فایل در git ignore شده است. فایل نمونهی بدون اطلاعات اتصال هم در `docker/xray/config.example.json` موجود است. اگر این فایل local را نداشتید، از نمونه کپی بگیرید و مقدارهای اتصال را پر کنید.
|
||||
|
||||
برای وقتی که اینترنت مستقیم یا mirrorها درست جواب نمیدهند، اول پروکسی را با profile جدا بالا بیاورید:
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production --profile proxy up -d vless-proxy
|
||||
```
|
||||
|
||||
پروکسی HTTP روی سیستم میزبان از `127.0.0.1:2080` و SOCKS از `127.0.0.1:2081` در دسترس است. برای build stepهای داخل Dockerfile از این دستور استفاده کنید:
|
||||
|
||||
```bash
|
||||
DOCKER_BUILD_HTTP_PROXY=http://host.docker.internal:2080 \
|
||||
DOCKER_BUILD_HTTPS_PROXY=http://host.docker.internal:2080 \
|
||||
docker compose --env-file .env.production build
|
||||
```
|
||||
|
||||
اگر خود pull کردن imageهای Docker مشکل داشت، این پروکسی را در Docker Desktop هم تنظیم کنید:
|
||||
|
||||
```text
|
||||
HTTP proxy: http://127.0.0.1:2080
|
||||
HTTPS proxy: http://127.0.0.1:2080
|
||||
```
|
||||
|
||||
برای Debian apt، پیشفرض روی repository رسمی Debian میماند چون mirror آروان ممکن است با نسخهی base image sync نباشد و dependency conflict بدهد. اگر عمداً خواستید apt را هم به mirror دیگری ببرید، این متغیرها را هنگام build تنظیم کنید:
|
||||
|
||||
```bash
|
||||
DEBIAN_APT_MIRROR=http://mirror.example/debian \
|
||||
DEBIAN_SECURITY_APT_MIRROR=http://mirror.example/debian-security \
|
||||
DEBIAN_APT_DISABLE_UPDATES=true \
|
||||
docker compose --env-file .env.production build
|
||||
```
|
||||
|
||||
برای اینکه درخواستهای خروجی خود اپلیکیشن هم از پروکسی رد شوند:
|
||||
|
||||
```bash
|
||||
APP_HTTP_PROXY=http://vless-proxy:8080 \
|
||||
APP_HTTPS_PROXY=http://vless-proxy:8080 \
|
||||
docker compose --env-file .env.production --profile proxy up -d
|
||||
```
|
||||
|
||||
اول دیتابیس را بالا بیاورید:
|
||||
|
||||
```bash
|
||||
@@ -96,14 +47,10 @@ docker compose --env-file .env.production up -d
|
||||
http://localhost:8080
|
||||
```
|
||||
|
||||
برای تغییر پورت، مقدار زیر را در `.env.production` عوض کنید و سرویس `nginx` را دوباره بالا بیاورید:
|
||||
Swagger:
|
||||
|
||||
```env
|
||||
HTTP_PORT=8081
|
||||
```
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.production up -d --force-recreate nginx
|
||||
```text
|
||||
http://localhost:8080/api/documentation
|
||||
```
|
||||
|
||||
برای دیدن وضعیت سرویسها:
|
||||
@@ -138,12 +85,11 @@ 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` خالی است.
|
||||
|
||||
1. مقدار `APP_KEY` را در `.env.production` تنظیم کنید.
|
||||
2. cache را پاک و سرویسها را restart کنید:
|
||||
2. سرویسها را 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