Windows Docker Operasyon¶
Native Windows Service’ten ayrı dağıtım türü. Scriptler: scripts/windows/docker.
Mevcut şekil: kaynak derlemeli kurucu. docker build çalıştırır. Linux offline docker load paketi değildir.
GitHub Release zip: iqv-integration-api-<sürüm>-windows-docker-amd64.zip checksum’lı kaynak anlık görüntüsüdür; .git içermez. Açıldıktan sonra release-package mode sürüm/commit bilgisini kök manifest.json dosyasından okur; Git, git init veya repo clone zorunlu değildir. Normal git checkout (.git var) önceki git tabanlı davranışı korur.
Önkoşul: Linux containers ile Docker Desktop. Scriptler Docker kurmaz.
Resmi paket giriş noktası: .\scripts\install.ps1.
Kurulum özeti: Docker Kurulumu.
İnceleme¶
powershell
docker ps
docker inspect <container>
docker compose ps
powershell.exe -ExecutionPolicy Bypass -File .\scripts\windows\docker\status.ps1
Compose proje adı: iqv-integration-api. Restart: unless-stopped.
Günlükler¶
Uygulama slog’u konteyner stdout/stderr çıktısıdır (Docker json-file, 10m × 5).
powershell
docker logs <container>
docker logs -f <container>
docker compose logs -f
Konteyner uygulama günlükleri için C:\IQVizyon\... altında dosya beklemeyin.
Başlat / durdur / yeniden başlat¶
powershell
docker compose start
docker compose stop
docker compose restart
docker compose up -d
docker compose down
Lab/üretim benzeri işlemlerde ad-hoc compose yerine update.ps1 / uninstall.ps1 kullanın.
Harici MongoDB ve host.docker.internal¶
Docker Desktop, host MongoDB’ye host.docker.internal ile ulaşabilir. Compose extra_hosts: host.docker.internal:host-gateway ekler.
text
MONGODB_URI=mongodb://host.docker.internal:27017
Konteyner içi loopback (127.0.0.1 / localhost) konteynerin kendisidir; harici Mongo modunda reddedilir.
Port eşlemesi¶
| Kavram | Env / bayrak | Anlam |
|---|---|---|
| HostPort | IQV_HOST_PORT / -HostPort |
Windows host’ta yayınlanan port |
| ContainerPort | HTTP_PORT / -ContainerPort |
Konteyner dinleme portu |
Compose ${IQV_HOST_PORT}:${HTTP_PORT} eşler. Yalnız HostPort ön kontrol edilir (çıkış 15). Native API 4242 ve Docker HostPort 4243 birlikte çalışabilir.
Health¶
Windows host’ta HostPort üzerinden:
powershell
Invoke-RestMethod http://127.0.0.1:<HostPort>/health/live
Invoke-RestMethod http://127.0.0.1:<HostPort>/health/ready
Konteyner healthcheck, konteyner içinde ContainerPort kullanır.
Güncelleme, NO-OP, ForceRedeploy, rollback¶
Karar commit/image tabanlıdır. Aynı commit ⇒ NO-OP (-ForceRedeploy yoksa).
Güncelleme, runtime image değişmeden önce iqv-integration-api:rollback-<short-id>-<timestamp> anlık görüntüsü alır. Health başarısızsa bu görüntü geri yüklenir. Veritabanı geri alınmaz. Başarılı rollback yine sıfır olmayan çıkış kodu döner.
Lab: -TestFailAt AfterComposeUp.
Image temizliği güvenliği¶
Kaldırma, görüntüleri yalnız açık -RemoveImages ile siler. docker system prune -a çalıştırılmaz. Volume yalnız -RemoveVolumes -Force ile silinir.
Yeniden başlatma¶
restart: unless-stopped, Docker Desktop açıldıktan sonra API konteynerini geri getirir. Docker Desktop’ın oturum/açılışta başlamasını doğrulayın.
Kaldırma¶
powershell
powershell.exe -ExecutionPolicy Bypass -File .\scripts\windows\docker\uninstall.ps1
Bkz. Kaldırma.