Ana içeriğe geç

Dağıtım (Docker)

Üretim dağıtımı docker-compose.yml (ve sıkılaştırılmış üretim için docker-compose.prod.yml) ile tanımlıdır. Bu sayfa genel bakıştır; ayrıntılar için: Docker Mimarisi (servisler, portlar, volume, healthcheck ayrıntıları), Docker Image ve Container (imaj nasıl derlenir, tag mantığı) ve Güncelleme / Rollback (container yaşam döngüsü, gerçek komutlar).

Servisler

Servis İmaj Açıklama
mongo mongo:7 Kalıcı veri, yalnızca managed-mongo profiliyle çalışır, yalnızca 127.0.0.1'e açık
backend iqvflex/backend/Dockerfile (node:22-alpine) Node.js/Express, /health
frontend dashboard/Dockerfile (node:22-alpine → nginx:1.27-alpine) Vite SPA + backend ters vekili, tek giriş noktası

docker compose up yerine ./install.sh / .\install.ps1 kullanılması önerilir — betikler .env üretimi, imaj derleme ve healthcheck doğrulamasını otomatik yapar.

Manuel Docker komutları (geliştirme)

docker compose config     # yapılandırmayı doğrula
docker compose build      # imajları derle
docker compose up -d      # servisleri başlat
docker compose logs -f    # günlükleri izle
docker compose ps         # SERVICE / STATUS / PORTS / HEALTH

Ortam değişkenleri

Değişken Varsayılan Açıklama
FRONTEND_PORT 8080 Tek giriş noktası (nginx)
BACKEND_PORT 3001 Yalnızca 127.0.0.1'e bağlanır
MONGO_PORT 27017 Yalnızca 127.0.0.1'e bağlanır
MONGODB_URI (boş) Boşsa yönetilen MongoDB kullanılır
GO_API_BASE_URL (zorunlu) Harici Go servisinin adresi
COMPOSE_PROFILES managed-mongo Harici MongoDB için boşaltın
VITE_API_BASE_URL (boş) Docker'da boş: aynı köken kullanılır

Harici MongoDB kullanımı

MONGODB_URI=mongodb://<KULLANICI>:<PAROLA>@<SUNUCU>:27017
COMPOSE_PROFILES=

COMPOSE_PROFILES boşaltıldığında yönetilen MongoDB servisi hiç çalışmaz; compose yapılandırması yine geçerli kalır.

Sağlık kontrolü

Sağlık kontrolü süreç kontrolü değildir — gerçek HTTP yanıtı doğrulanır.

Ne Adres Beklenen
Backend http://localhost:8080/health 200 + data.status == "ok"
Frontend (nginx) http://localhost:8080/__nginx_health 200
MongoDB container healthcheck db.adminCommand('ping').ok
curl http://localhost:8080/health

nginx şu üç öneki backend'e vekiller: /health, /erp-mapping, /api/. Diğer tüm yollar SPA'ya düşer (React Router).

Sıkılaştırılmış üretim profili

./install.sh --profile prod        # Linux
.\install.ps1 -DeployProfile prod  # Windows

docker-compose.prod.yml, veritabanı ve backend portlarını dışarıya hiç açmaz, backend kök dosya sistemini salt okunur yapar ve bellek sınırları uygular. Tek giriş noktası nginx olur.

Güncelleme ve kaldırma

Ayrıntılar için bkz. Kurulum.