Proč používáme Docker
Za 5 minut hotovo: S Dockerem je rozjetí projektu rychlejší než uvaření kávy
SUPERKODERS tým
20. února 2025 • 5 min. čtení
Docker se stal pro nás v SUPERKODERS nepostradatelným nástrojem. Umožňuje nám pracovat efektivněji, šetří nám čas a usnadňuje spolupráci. V tomto článku vám prozradíme, jak nám Docker usnadňuje vývoj.
Co je Docker a proč ho používáme?
Docker je nástroj, který nám umožňuje vytvořit jednotné vývojové prostředí pro všechny projekty. Nemusíme řešit problémy s různými verzemi PHP, NPM nebo třeba operačními systémy. Děláme různě na MacOS, Windows i Linuxech. Všem z nás správně nastavený Docker poskytne identické prostředí, což nám urychluje vývoj, debugování chyb a celkově usnadňuje spolupráci.

Problémy, které nám Docker vyřešil
Představte si situaci, kdy pracujete na několika projektech, z nichž každý vyžaduje jiné verze PHP, Node.js nebo NPM.
Udržet si ve všech verzích pořádek a zajistit, aby vše fungovalo, může být noční můra. A přesně tak to je. I když se snažíme držet aplikace v nejnovějších verzích, nejde to vždy 100% stíhat. S Dockerem nám tyto problémy zmizely. Vytvoříme si kontejnery s potřebnými verzemi a nastavením pro daný projekt a máme jistotu, že vše bude fungovat tak, jak má.
Dokážeme si při buildu projektu stáhnout aktuální databázi z testovacího serveru a importovat do Docker databáze.
Takto nastaveným flow nám odpadají časté požadavky kolegů kodérů o pomoc při rozjezdu projektu. Nyní stačí říct magické dvě slova: Použij Docker!
Jak fungujeme v každodenním režimu?
Pomocí Dockeru je spuštění projektu hračka. Nový kolega si může projekt rozběhnut během pěti minut.
Základní příkaz docker compose up -d
a projekt běží. Jednou to nakonfigurujeme a pak už jen spouštíme. To nám šetří spoustu času a energie, kterou můžeme věnovat samotnému vývoji.
Pokud potřebujeme spustit více procesu za sebou (composer, build FE, stažení DB, plnění elastic search), vytvoříme si Make příkaz v rámci Makefile
, který máme víceméně unifikovány pro naše projekty. Každý si pak v projektu přidá specifické commandy a pracuje s nimi.
Jak může vypadat rozjetí projektu bez Dockeru
- Čtení readme či dokumentace projektu (pokud je)
- Zjišťování verze PHP, Node, NPM
- Nastavení přístupu do databáze
- Spuštění migrací / naplnění dummy daty / hledání databáze z testovacího serveru
- Spuštění instalace composeru
- nemám správnou verzi PHP
- stahuju do klienta typu MAMP správnou verzi
- řeším jak mít v CLI tu správnou verzi
- instaluji závislosti
- nemám správnou verzi PHP
- Nastavuji lokální konfiguraci
- sháním ji po zkušenějších kolezích
- hádám, co kde má být
- pořád něco nefunguje
- Build frontendu
- potřebuju Node.js xx.xx
- instaluji NVM, všechny verze co potřebuju
- hledám způsoby, jak na to
- neprochází build, protože nějaký problém není ještě na novém MacOS vyřešen…
- Nějak to běží, zabralo to hodinu až dvě, nevím jestli mi to vše běží správně, ale to zjistím později
- Jdu pracovat!
Jak vypadá náš “Docker stack”
- php container
- frontend container - npm, node, gulp, etc..
- db container - většinou mariadb
- elastic search container
- redis container
- mail tester container
Jaké jsme si třeba připravili commandy
-
make start
- stažení DB pomocí SSH
- docker compose
- instalace závislosti composer i npm
- vyřešení cache
- naplnění elastic search
-
make up
- každodenní command pro rychlý start projektu- start containeru
-
make migrate
-
make docker-start
- pro první start projektu - nastavení config env souborů
- pak totožné co make start
Docker je výzva, ale stojí to za to
Nastavit aktuální proces zabralo nějakou chvíli a iterace (a stále není konečný), ladíme jej i nadále, ale ovoce to nese okamžitě. Už není třeba řešit MAMP nebo lokální PHP či databáze.
Výzvy, které je třeba vyřešit jsou, jak si předávat rozumně data v DB, pokud vyvíjí více lidí najednou. Částečné řešení tohoto máme implementováno, ale může to vytvořit více problémů než obyčejná lidská domluva.
Docker je pro nás klíčovou technologií pro vývoj a věříme, že nám bude pomáhat i nadále. Těšíme se, co nám Docker v budoucnu přinese.

Chceš se bavit s námi?
Hledáme do týmu další zapálené vývojáře.
Mrkněte na kariéru a napište Michalovi.
Michal Matuška | CTO +420 737 770 642