Vagrant nebo Docker? Který z nich a jestli vůbec? Struktura projektu apod

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
snizemic
Člen | 28
+
+1
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
+3
-

@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:


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
+
0
-

@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
+
0
-

@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

snizemic
Člen | 28
+
0
-

@DavidKudera Díky za info, jsem zpátky na Vagrantu. :-) Pokud vím, tak NFS na Windows nefunguje. Nebo ano? :-)

Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows.

Editoval snizemic (12. 4. 2016 17:13)

David Kudera
Člen | 455
+
0
-

@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
+
0
-

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
+
+1
-

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
+
0
-

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. ;-)

Oli
Člen | 1215
+
0
-

<OT>

@snizemic nebyl by řešením dualboot? Pro mě byl a používám to už asi 2 roky. Na vývoj linux a na programy, který nejsou na linuxu a zábavu win. Nefungovalo by to asi jen, kdyby jsi potřeboval používat nějaký programy a ty by přistupovali k localhostu…

</OT>

snizemic
Člen | 28
+
0
-

@Oli No, to pro mě úplně není, protože potřebuji často přepínat. Dělám chvíli třeba grafiku a pak to potřebuji hned začlenit do toho web projektu apod. Dualboot mě napadl hned, ale to by bylo spíše hůře než lépe.

Luděk Veselý
Člen | 29
+
0
-

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 :).