bash · docker · coolify

php-check.sh

Projde všechny běžící Docker kontejnery na serveru, zjistí v nich verzi PHP a porovná ji s nejnovějším vydáním dané větve na php.net. Hned vidíš, který kontejner potřebuje rebuild.

Spuštění

Druhý příkaz vypíše i kontejnery bez PHP. Spouštěj na serveru jako uživatel s přístupem k Dockeru (jinak přidej sudo před bash).

Rovnou spustit rebuild

Za … doplň API token z Coolify (Keys & Tokens → API tokens, oprávnění deploy; API musí být zapnuté v Settings → Advanced). Skript vypíše, které aplikace postaví, a zeptá se. Bez ptaní (cron) přidej --yes.

Stáhnout a spouštět lokálně

Nebo si skript nejdřív prohlédni — co pouštíš přes | bash, je dobré znát.

Co dělá

  1. Načte seznam běžících kontejnerů přes docker ps.
  2. V každém zkusí php -v, případně php-fpm a varianty php8.2–php8.5. Kontejnery bez shellu (distroless) tiše přeskočí.
  3. Z verze odvodí větev (např. 8.4) a stáhne její nejnovější vydání z API php.net. Každou větev jen jednou za běh.
  4. Místo technického jména kontejneru ukáže čitelný název aplikace z Coolify (bez UUID), u compose i název služby. Image postavené přímo Coolify označí jako (build).
  5. Vypíše tabulku seřazenou od problémů: ✗ zastaralé, ? nelze ověřit (typicky větev po konci podpory), ✓ OK. Na konci je souhrn s počty.

Ukázka výstupu

  APLIKACE                  PHP       NEJNOVĚJŠÍ  IMAGE
✗ coolify                   8.4.23    8.4.26      coolify:4.4.6
✗ nahraymain                8.4.25    8.4.26      (build)
✗ phpmyadmin                8.3.19    8.3.35      phpmyadmin:latest
? legacy-web                7.4.33    EOL?        php:7.4-apache
✓ passbolt                  8.4.26    8.4.26      passbolt:latest-ce
✓ vojtapay-api              8.3.35    8.3.35      (build)

3 zastaralé, 2 OK, 1 nelze ověřit

✗ Redeploy v Coolify s vypnutou cache (force rebuild). U připnutých tagů (php:8.4.26-fpm) nejdřív zvedni verzi v Dockerfile.
? php.net pro tuhle větev nic nevrací — nejspíš skončila podpora, je čas na upgrade.

Volby

--allVypíše i kontejnery, ve kterých PHP není.
--rebuildU zastaralých aplikací a služeb Coolify spustí force rebuild přes API (/api/v1/deploy?force=true). Každou aplikaci jen jednou, i když má víc kontejnerů. Samotné Coolify přeskočí, to se aktualizuje v Settings → Update. Pomůže jen u plovoucích tagů (php:8.4-fpm, :latest). U připnuté verze nebo nixpacks se postaví stejné PHP.
--yesRebuild bez potvrzení. Bez terminálu (cron) je povinné.
COOLIFY_TOKENAPI token pro --rebuild. COOLIFY_URL má výchozí hodnotu http://localhost:8000.
MIN_8_4Ruční přepsání cílové verze větve, např. MIN_8_4=8.4.27 ./php-check.sh. Funguje pro každou větev (MIN_8_3, MIN_8_5…).
exit 0Vše aktuální.
exit 1Něco je zastaralé nebo nejde ověřit — hodí se do cronu nebo monitoringu.
exit 2Na stroji není docker.

Požadavky