Docker + WordPress kezdőknek
Biztosan volt már veled is, hogy valami elromlott - akár nagyon. Ha ez történetesen egy szerver, akkor rögtön gyomorgörcs is párosult mellé: mi a helyzet az adatokkal, és hogyan állítjuk vissza a lehető legrövidebb időn belül a rendszert? A legrosszabb pedig még csak ezután tudatosul: most akkor újra kell konfigurálni mindent? Bevillannak a finomhangolásokkal eltöltött órák, és rájössz, hogy nem is emlékszel már minden apró részletre, hogy azt a valamit, ami nem ment elsőre, hogyan is sikerült végül működésre bírni... Hát, ilyenkor biztos nem lennél a helyedben.
Infrastructure as code
Az éppen aktuális buzzwordnek tűnő kifejezés mögött az a gondolat áll, hogy az infrastruktúránkat le lehet írni úgy, mintha kódot írnánk: akár valamilyen magasszintű, könnyen értelmezhető és tanulható nyelvvel is, mintha az infrastruktúra nem lenne más, csak kód. Erre tökéletesen alkalmas a Docker és a docker-compose, melyek ezt nagyon könnyen lehetővé teszik.
Szóval a teljes infrastruktúránkat - azt a szolgáltatáscsomagot, amit nyújtunk a szerverünkön - szöveges állományként szeretnénk tárolni. Hűűűhaa, de ééérdekes... Ha mélyebben belegondolunk, akkor ez viszont masszív következményekkel jár.
1. A fejlesztői és éles környezet teljes mértékben megegyeznek
Amikor a weboldalt beélesítjük, belefuthatunk olyan hibákba is, melyek nem jöttek ki a fejlesztés során - ezek oka lehet akár az eltérő szoftverkörnyezet is (más PHP verzió, eltérő Apach/nginx konfig), melyet kiküszöbölhetünk azzal, ha a production környezetben használttal megegyezik a környezet, amiben fejlesztünk - eggyel kevesebb hibalehetőség.
2. Kísérletezz szabadon - a host rendszer tiszta marad
Szinte mindegy, mit csinálsz a Docker containerekben, a host rendszer - az, amelyiken kiadod a docker-compose/docker parancsokat - teljesen tiszta marad: nem akadnak össze a telepített programok, akár több verzió is lehet futhat párhuzamosan egymás mellett ugyanabból - pl. PHP 5.6 és 7.2 - más-más konténerekben.
3. Sérülés/hiba esetén könnyű visszaállíthatóság
A bevezetőben tárgyaltak bárkivel megtörténhetnek és előbb vagy utóbb meg is fognak történni - sokkal nyugodtabban alszunk, ha ezekre a helyzetekre van egy kész forgatókönyvünk: adatmentés, aztán teljes törlés és tiszta lappal indítás.
Mivel a docker-compose fájl mozgatható, ezért akár az egész VPS-t is lelőhetjük, és egy teljesen újjal kezdhetünk: az alapvető beállításokat követően elég kiadni a docker-compose up -d
parancsot, és - ha jól raktuk össze - kész is vagyunk. Egyszerű, nem igaz? :)
Szuper, nekem is kell!
Örülök, hogy tetszik: összeraktam egy csomagot, amivel könnyen kipróbálhatod WordPressel. Elég csak letöltened, kicsomagolnod, és a könyvtárba lépve docker-compose up -d
-vel elindítanod a rendszert. Ha minden jól ment, kis várakozás után a localhost:3000-es címen eléred a WP telepítőjét (amiben már előre be vannak állítva az adatbázis hozzáférési adatok is).
Letöltést követően csomagold ki az állományt, lépj a docker mappába, és az ott található docker-compose.yml fájlt megnyitva az összes OLDALNEVE előfordulást cseréld le a projekted nevére, majd ezt követően indulhat is a móka.
Előadás diasor
Az alábbi előadást 2019. november 20-án tartottam Szegeden, a 4. Szeged WordPress Meetup-on. Kattints az előadás letöltéséhez.
További hasznos olvasmányok:
Docker bevezetők
- From Vagrant to Docker: How to use Docker for local web development
- How to use Docker for local web development: an update
- Getting Started with Docker
VPS beállítás
Docker + WordPress áttekintés
A cikk feltételezi, hogy a rendszeren telepítve van a Docker és a docker-compose. Részletek és telepítési útmutatók itt és itt.