V jednom ze studovaných předmětů jsem se poprvé setkal s termínem Dev Containers. Nejdříve jsem úplně nechápal, proč si to hodně lidí na internetu vychvaluje, ale jak už to na vysoké škole bývá, věnovali jsme tématu Dev Containerů poměrně hodně času na cvičeních a mně konečně došlo to kouzlo, které poskytují.
Dříve to nebylo úplně pohodlné
Ještě před Dev Containery a před naučením se pracovat s Dockerem jsem veškeré aplikace zprovozňoval ručně. Potřeboval jsem MySQL databázi? Nainstaloval jsem XAMPP a dále jsem to neřešil. Pak jsem se setkal s Dockerem a s možností multi-kontejnerových aplikací díky Docker Compose, což mě posunulo ve vývoji o trochu dál – respektive jsem byl ze startu rychlejší při nastavování prostředí.
Co si nejvíce cením na Dev Containers
Před nějakou dobou jsem se rozhodl obnovit svůj stolní počítač do továrního nastavení, zejména kvůli zvýšení výkonu. Využil jsem této příležitosti a přešel rovnou na Linux, což pro mě, jako dlouhodobého uživatele Windows a macOS, znamenalo velkou změnu. Rozhodl jsem se, že svůj vývojový proces uchopím jinak.
Nemám na počítači nainstalovaný Node, Terraform, Ansible ani téměř nic dalšího z klasického vývojářského stacku. Jediné, co z toho běžného stacku mám nainstalováno, je Java. A také Docker – a hned vysvětlím proč.
Dev Containers mi umožnily přesunout celé vývojové prostředí daného projektu do izolovaného kontejneru, ve kterém je nainstalováno vše potřebné. Ať už vyvíjím backend nebo infrastrukturu, v Dev Containeru mám všechno potřebné – Javu, Terraform, Ansible, zkrátka vše, co by projekt mohl vyžadovat. Vyvíjím mobilní aplikaci nebo frontend webové aplikace? I pro to mám vlastní Dev Container s odpovídajícím nastavením. Díky tomu je můj počítač čistý.
A ten největší bonus? Možnost multi-kontejnerového Dev Containeru, kde můžu spustit více služeb současně a mít kompletní prostředí. Aktuálně pracuji na svém projektu v mikroservisním prostředí, který potřebuje RabbitMQ pro streamování událostí, Redis pro distribuovanou cache, MongoDB jako úložiště dat a Fake-SMTP server pro debugování emailových notifikací. Dříve bych s tímto nastavením bojoval hodiny, ale nyní si otevřu IntelliJ IDEA, přejdu do složky s Dev Containerem, zmáčknu tlačítko „Play“ a během tří minut mám připravené prostředí se vším, co potřebuji. Neuvěřitelně pohodlné.