Na konci roku 2017 jsme začali používat Docker jako výchozí způsob instalace Shopsys Frameworku. Instalace pomocí Dockeru přinesla řadu výhod, jako je stejné vývojové prostředí pro všechny vývojáře nebo rychlá instalace na nových zařízeních. Na systémech Windows a MacOS bylo nutné používat docker-sync, aby se obešly problémy s výkonem v Dockeru. S docker-syncem však přišly jiné problémy. Hlavním z nich je, že při větším počtu změn (např. při git checkout
) se může stát, že se synchronizace úplně zastaví.
Na tento problém jsme dlouhou dobu hledali řešení. Nedávno jsme aktualizovali naši instalační příručku pro Windows, která nyní používá WSL2 a tak již není potřeba používat docker-sync. Zbývalo nám už jen najít lepší řešení pro vývojáře s MacOS a myslíme si, že jsme jej konečně našli.
Nedávno jsme začali testovat Mutagen jako náhradu za docker-sync. Mutagen má srovnatelný výkon jako docker-sync, ale z našeho testování zatím vychází, že je mnohem stabilnější. Před přidáním Mutagenu přímo do Shopsys Frameworku jej však chceme pořádně otestovat, ale s dosavadními výsledky jsme spokojeni. Chceme se s Vámi proto podělit o tento krátký návod k instalaci, abyste si Mutagen mohli vyzkoušet sami. Budeme rádi, když nám poskytnete jakoukoliv zpětnou vazbu.
Instalační příručka (~10 minut)
- install Mutagen in beta version
brew install mutagen-io/mutagen/mutagen-beta
(mutagen compose je prozatím pouze v beta verzi)- pokud se Vám objeví chyba ve smyslu “formulae je nepřesná” spusťte:
brew untap havoc-io/mutagen
brew install mutagen-beta
- zkopírujte docker-compose.yml do vašeho projektu a patřičně jej upravte
- spusťte
mutagen compose up -d
- poté spusťte
docker-compose exec -u root php-fpm chown -R www-data:www-data /var/www/html
- toto je potřeba spustit po každém spuštění
mutagen-compose up
z důvodů známých problému s přístupovými právy ke kořenové složce
- toto je potřeba spustit po každém spuštění
Poznámka:
mutagen compose pouze obaluje docker-compose, který zajišťuje, že synchronizace mutagenu je spuštěna před spuštěním příkazů docker-compose. Příkazy jsou všechny stejné, jen nahradíte docker-compose za mutagen compose například:
mutagen compose exec php-fpm bash |
Ladění s Mutagenem
Další silnou výhodou Mutagenu je, že Mutagen přichází s několika způsoby ladění, v případě, že se vyskytne nějaký problém:
mutagen sync list
zobrazí seznam aktuálně běžících synchronizací a zobrazí potenciální problémy, které mohly nastat.mutagen sync monitor
zobrazuje v reálném čase, co Mutagen dělá, a v případě problému zobrazí Error nebo Problem. V takovém případě musíte spustit příkaz mutagen sync list, abyste získali podrobné informace o problému.