Ana içeriğe geç

Güncelleme / Rollback

Container Yaşam Döngüsü

Build → Start → Health Check → Update → Rollback → Stop/Remove

Aşağıdaki komutlar mevcut betiklerden ve compose dosyasından alınmıştır; compose dosyasına uygun olmayan komutlar burada kullanılmaz.

Build

docker compose config     # yapılandırmayı doğrula
docker compose build      # imajları derle

Start

docker compose up -d

(Önerilen yol ./install.sh / .\install.ps1 — betik .env üretimini, imaj derlemeyi ve healthcheck doğrulamasını otomatik yapar.)

Health Check

docker compose ps                          # SERVICE / STATUS / PORTS / HEALTH
curl http://localhost:8080/health
docker compose logs -f                     # günlükleri izle

Update

./update.sh          # Linux
.\update.ps1          # Windows

update.sh sırası: kurulum doğrulama → sürüm kaydı → yapılandırma yedeği → git fetch → git pull --ff-only (birleştirme/rebase yapılmaz) → sürüm/bağımlılık karşılaştırması → gerekli servisleri yeniden derleme (docker compose build) → yeniden başlatma → healthcheck.

  • Takip edilen dosyalarda kaydedilmemiş değişiklik varsa güncelleme durur.
  • docker compose down -v hiçbir zaman çalıştırılmaz → veritabanı (mongo_data/mongo_config) korunur.
  • Yalnızca kod çekmeden yeniden kurmak için: ./update.sh --no-pull.

Rollback

Otomatik rollback varsayılan olarak kapalıdır ve yalnızca git seviyesindedir (imaj seviyesinde ayrı bir rollback mekanizması yoktur):

./update.sh --allow-rollback

--allow-rollback verilirse, güncelleme sonrası healthcheck başarısız olur ve kod değiştiyse betik git reset --hard <önceki-commit> ile bir önceki commit'e döner ve servisleri o sürümle yeniden derleyip başlatır. Bayrak verilmezse betik yalnızca önerir, otomatik geri dönmez:

./update.sh --allow-rollback     # veya elle:
git reset --hard <önceki-commit-sha>
docker compose build
docker compose up -d

Stop / Remove

docker compose down       # container'ları durdurur/kaldırır, volume'leri KORUR

Uygulamayı tamamen kaldırmak için (servisleri durdurur, container'ları ve uygulama imajlarını siler; MongoDB verisi, .env, backups/ ve kaynak kodu korur):

./uninstall.sh          # Linux
.\uninstall.ps1         # Windows

Tam temizlik (--purge) ve veritabanı dahil silme (--purge-data) bayrakları için depo kökündeki README.md dosyasına bakın.