Linux Docker Operasyon¶
Önerilen Linux konteyner üretim yolu: offline prebuilt OCI image + harici MongoDB. Müşteri host’ta yalnız Docker Engine ve Compose v2 gerekir.
Depo scriptleri: scripts/linux/docker. GitHub Release tarball’ı (iqv-integration-api-<sürüm>-linux-docker-amd64.tar.gz) bunları scripts/*.sh olarak sunar ve image/*.tar içerir.
Önkoşullar¶
- Docker Engine zaten kurulu (paket Docker kurmaz)
- Compose eklentisi (
docker compose) - amd64 host
- Konteyner ağından erişilebilir harici MongoDB (loopback değil)
İnceleme¶
bash
docker ps
docker inspect <container>
docker compose ps
sudo ./scripts/status.sh
Restart: unless-stopped. Üretim compose: pull_policy: never, build: yok, user: "10001:10001".
Günlükler¶
bash
docker logs <container>
docker logs -f <container>
docker compose logs -f
Sürücü: json-file, max-size: 10m, max-file: 5.
Offline docker load¶
Kurulum/güncelleme SHA256SUMS / image tar özetini doğrular, sonra docker load -i image/*.tar çalıştırır. Üretim yolunda registry pull ve docker build yoktur. Özet uyuşmazsa load ve mutasyon yapılmaz.
Harici MongoDB¶
Kurucu MONGODB_URI değerini host.docker.internal olarak yeniden yazmaz. Üretim compose’ta extra_hosts yoktur. Gerçek host/IP kullanın:
text
MONGODB_URI=mongodb://<MONGODB_HOST>:27017
MONGODB_DATABASE=<DATABASE_NAME>
Port çözümleme¶
--host-port / --container-port (varsayılanlar paket/env’e göredir; siz ayarlamadıysanız 4242 varsaymayın). HostPort doluluk kontrolü ss başlığını değil gerçek LISTEN satırlarını kullanır.
Status / güncelleme / ForceRedeploy / rollback¶
bash
sudo ./scripts/status.sh
sudo ./scripts/update.sh
sudo ./scripts/update.sh --force-redeploy
Karar yüklenen image id üzerindendir. Aynı id ⇒ NO-OP (restart yok). --force-redeploy docker compose up -d --no-build --force-recreate çalıştırır. Health başarısızsa değişmez anlık görüntü geri yüklenir. Harici MongoDB değiştirilmez.
Lab: --test-fail-at AfterComposeUp.
Otomatik güncelleme (isteğe bağlı, varsayılan kapalı)¶
Birimler: iqv-integration-api-updater.service + .timer (OnBootSec=5min, OnUnitActiveSec=15min).
bash
sudo ./scripts/enable-auto-update.sh
sudo ./scripts/disable-auto-update.sh
Otomatik güncelleme sürümlü release manifest’ini bulur, SHA256 doğrular ve update.sh kullanır. git pull değildir. Açıkça etkinleştirilip AUTO_UPDATE_SOURCE verilene kadar kapalı kalır.
Kaldırma¶
bash
sudo ./scripts/uninstall.sh
sudo ./scripts/uninstall.sh --remove-images
sudo ./scripts/uninstall.sh --purge
compose down --volumes geçmez. Docker Engine asla kaldırılmaz. Bkz. Kaldırma.