Vagrant nebo Docker? Který z nich a jestli vůbec? Struktura projektu apod
- snizemic
- Člen | 28
Zajímaly by mě vaše názory a zkušenosti, jestli virtualizaci používat
či nikoliv? Vagrant nebo Docker? Zejména tedy na Windows. Momentálně se
snažím proniknout do Vagrantu a už i tady jsem četl nějaké překážky
např. v tom, že Nette špatně detekuje, že je v development módu apod.
Mít na každý projekt extra virtuální stroj nebo mít rozběhlý jeden
server a mít na něm víc aplikací jako virtuální hosty? Tam se zase
člověk prý může dostat do problémů se synchronizací velkého množství
souborů a tím pádem brutální propad ve výkonu…
Předem díky za jakékoliv best practices!
- chap
- Člen | 81
Ahoj,
také by mě zajímali zkušenosti co se týče Win. Nedávno jsem si sám
dohledával, která cesta je lepší a zdál se mi jako lepší varianta
Docker – už z hlediska snadné instalace jednotlivých služeb (Redis,
Elastic, atp)
Rozchození není zas až tak obtížné. Jediné na co jsem narazil (ale to
není problém dockeru), tak pomalý přístup ke složkám ve Win – měl
jsem takovou představu, že budu mít někde v dokumentech složku s komplet
projektem, dal jsem si tam i složku s daty DB (která tedy významně
nafoukla projektovou složku – s tám bych se ale smířil, nebo udělal
nějakou společnou). Co mi však vadilo, tak celková rychlost – to bych ale
viděl na sdílené složky mezi Win a systémem s Dockerem. Podobnou
„pomalost“ mám mmj i na virtuálním stroji, kde jsem také nasdílel
projektovou složku. Rád bych si přečetl další názory. Chap
- newPOPE
- Člen | 648
Ahoj,
tiez som mal pred casom dilemu okolo Vagrantu a sem tam ho skusal. Ale
takisto aj Docker odkedy prisiel.
Predpokladam, ze na WINe mate ci uz vagrant alebo Docker pusteny cez VirtualBox
a to je presne strojca problemov zo synchronizaciou a sharovanim suborov medzi
hostom a VM. Nezalezi ci docker alebo vagrant.
My prevadzkujeme docker na OSX a Linuxe. A s OSX su/boli tiez problemy ale riesenie po case prislo. Viac na https://rekurzia.sk/…ocker-na-osx a https://rekurzia.sk/…r-na-osx-2.0 :)
V sucasnosti uz bezi Docker naplno…
@snizemic co sa tyka otazok ci jeden stroj pre kazdy projekt alebo jeden pre vsetky je len na tebe. Ja to osobne tlacim projekt = stroj (resp. viac kontainerov). Rozne projekty rozne zavislosti.
Editoval newPOPE (22. 3. 2016 20:58)
- snizemic
- Člen | 28
Ahoj,
díky moc za reakce a názory. Vím, že se to netýká přímo Nette, ale
řeším to primárně pro Nette, tak mě to zajímá. Někdy mám pocit, že
vyvíjet na Windows je jak nějaká „choroba“ :-)
@chap Také jsem po načtení věcí z netu došel k závěru, že Docker bude lepší varianta. Osobně jsem ho nezkoušel, ale měl by být rychlejší a šetřit místo. Ale přesně jak píšeš, největší brzda je zřejmě právě VirtualBox. I když i v případě Win by se mělo jednat o nějakou lightweight linuxovou distribuci… No, asi to vyzkouším.
@newPOPE Díky za tipy! Jinak se mi taky líbí myšlenka projekt = stroj. Jde mi jen o to, že, alespoň v mém případě, jsou ty VM vlastně identické, takže se mi spíš víc hodí ta myšlenka virtual hostů, navíc ten Vagrant box docela nafoukne projekt :-) Ostatně jako kdyby to měl člověk na lokální instalaci Apache + PHP + MySQL, tak to má taky ve virtual hostech.
Každopádně jsem teď ještě našel (nezkoušel jsem, ale vyzkouším) přímo od tvůrců Vagrantu „řešení“ pro rychlost sdílených složek: https://www.vagrantup.com/…ers/smb.html
- potapnik
- Člen | 127
Ahoj,
co se rychlosti týče – sync mám vypnutý, a složky mám propojeny přes
SSH konexi. Při každém uložení souboru se změny monitorují a propagují
na server. Rychlost je z mě nepochopitelných důvodů vyšší než při WAMP
řešení. Používám vagrant (homestead od Laravelu), protože jsem byl línej
cokoliv konfigurovat a tohle řešení funguje out of box (po vypnutí
těch sync)
- Felix
- Nette Core | 1270
@snizemic
Pouzivam vsude na serverech Docker a tedka na notasu mam Linux Mint s dockerem. Defakto mam uplne holej / prazdnej / cistej Linux Mint s Chromem a vsechno ostatni mam v docker containerech.
Obecny projekty a maly apky mam v kompozitnim dockerfile. A pak co projekt a specificke nastaveni tak jeden Dockerfile + DockerCompose.
Je super, ze ikdyz je kazdy projekt jiny, napriklad ja mam.
- PHP7 + Nginx
- PHP7 + Nginx + MariaDB + Gulp
- PHP7 + Nginx + PostgreSQL
- PHP7 + Nginx + ElasticSearch + Redis
- NodeJS + Gulp
- Java8 + Tomcat
Zacatky jsou tezke, ale kdyz si na to zvyknes tak je to skvely. 1× pripravis prostredi a kdokoli ho muze mit take, pripadne si muzes stejne prostredi hodit i na server.
S dockerem jdou i takovy srandy jako, ze mas na vsechny aplikace 1 container.
Skvela inspirace je u jedne holciny na blogu https://blog.jessfraz.com/…the-desktop/.
Nebo jsem nasel:
- Skype (https://github.com/…docker-skype)
- Netbeans (http://fabiorehm.com/…with-docker/ + https://github.com/…ker-netbeans)
- PhpStorm (https://github.com/…ker-phpstorm)
- PhpStorm + Xdebug (https://gist.github.com/…2d160ffea9c4)
V jednu chvili jsem premyslel, ze si taky vsechno nahodim do Dockeru, protoze pak si na Dropbox nebo kamkoli ulozis konfiguracni soubory (Dockerfiles) a pripadne svoje ulozene configy a behem par hodin presidlis komplet na jiny stroj / notas / cokoli..
:-)
- snizemic
- Člen | 28
@Felix Díky moc za inspiraci. Strávil jsem několik dní s Dockerem a líbí se mi víc než Vagrant. Je složitější na pochopení a konfiguraci, ale je tedy výrazně úspornější na místo na disku. Bohužel na Windows je to trochu noční můra. Nakonec jsem díky boot2docker vše rozchodil, ale největší „ALE“ je sdílení složek. Boot2docker umí defaultně mount pouze z C:\Users, takže by musel člověk mít všechno tam. Našel jsem spoustu různých návodů, jak to obejít, ale došly mi síly :-)))
@potapnik Asi to udělám stejně jako ty, už mě taky nebaví nic nastavovat :-)
- David Kudera
- Člen | 455
@snizemic na windows je to dost peklo a prostě to nefunguje pořádně. Kolegyně to měla několik měsíců přes docker přímo (s virtualboxem), ale byly s tím jenom problémy. Nedávno jsem to ale předělal na čistý virtualbox, do něj jsem dal ubuntu core a docker nainstaloval uvnitř. Sice nemůže použít docker příkazy přímo, ale i přesto je ta práce s tím o dost jednodušší.
A hlavně použít NFS pro sdílení. Jo a používá to vlastně vagrant :-D
- David Kudera
- Člen | 455
@snizemic myslím, že teď je pro windows nejlepší kombinace obojího. Jak jsem ale psal, sám to aktivně nepoužívám, jen mám míň starostí s kolegyní :-D
Jinak pro NFS je tu plugin . Jediný problém, na který jsem narazil, je s NPM, takže to bohužel používáme přímo nainstalované na windows......
- snizemic
- Člen | 28
O pluginu vím, ale četl jsem, že tam jsou nějaká omezení a že to není úplně 100%, ale každopádně vyzkouším. NPM, Composer a spol. mi asi nevadí. To mám nainstalované vše ve Windows a používám to přímo z příkazové řádky, resp. cygwinu v NetBeans. To není nic proti ničemu, ne? :-)
- Felix
- Nette Core | 1270
Podle poslednich informaci se planuje nativni podpora Dockeru pro Windows i pro Mac.
Staci se subcribnout na https://beta.docker.com/.
Docela se tesim, ne ze bych pouzival tyhle platformy, ale na dalsich rozsireni a skvely doplnky.
- snizemic
- Člen | 28
Fajn díky! Taky bych docela rád něco funkčního na Windows. Samozřejmě se nabízí varianta Windows úplně opustit, ale je to pro mě nereálné. Jsem na nich příliš závislý kvůli ostatním softwarům. :-)
Jen doplním https://box.scotch.io/. Ale každý, kdo se o to nějak zajímá, tak už to určitě musel objevit. Každopádně po všech peripetiích s vlastními boxy apod. Scotch Box funguje jednoduše a spolehlivě funguje. ;-)
- Luděk Veselý
- Člen | 29
S Windows zkusenost nemam, ale resil jsem to same pro vyvoj na Macu, kde je situace podobna. Hodne problemu se mi vyresilo (vykon a sdileni souboru), kdyz jsem misto Virtualboxu zacal pouzivat VMware Fusion. Staci ho nainstalovat (neni teda free) a nasledne u docker-machine pouzit VMware misto Virtualboxu (mozne rovnou pridelit i vice HW zdroju):
# vytvorim virtualni stroj s dockerem
docker-machine create --driver vmwarefusion \
--vmwarefusion-memory-size 4096 \
--vmwarefusion-disk-size 40000 \
--vmwarefusion-cpu-count -1 \
vmware
# umoznim pristup k docker engine
eval $(docker-machine env vmware)
# spustim kontejner s php, ve kterem je jako volume aktualni adresar
docker run -v $(pwd):/var/www/html/ --rm php:apache
Jen pozor, sdilena slozka musi byt v domovskem adresari, napriklad /var/www fungovat nebude.
Na beta.docker.com jsem se prihlasoval a uz mi prisla pozvanka – to by melo byt definitivni reseni techto problemu, tak uvidime :).