Ana içeriğe geç

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.