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á
- Načte seznam běžících kontejnerů přes
docker ps. - V každém zkusí
php -v, případněphp-fpma variantyphp8.2–php8.5. Kontejnery bez shellu (distroless) tiše přeskočí. - 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. - 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). - 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
| --all | Vypíše i kontejnery, ve kterých PHP není. |
| --rebuild | U 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. |
| --yes | Rebuild bez potvrzení. Bez terminálu (cron) je povinné. |
| COOLIFY_TOKEN | API token pro --rebuild. COOLIFY_URL má výchozí hodnotu http://localhost:8000. |
| MIN_8_4 | Ruč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 0 | Vše aktuální. |
| exit 1 | Něco je zastaralé nebo nejde ověřit — hodí se do cronu nebo monitoringu. |
| exit 2 | Na stroji není docker. |
Požadavky
- bash 4+,
docker,curla přístup k Docker socketu - odchozí HTTPS na
www.php.net