Ana içeriğe geç

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.