Dużo projektów, maszyny wirtualne, vagrant, docker

0

Cześć,
Jak w temacie. Chodzi o kilka projektów, które dostałem do developowania. Jak do tej pory radziłem sobie na lokalnej wersji w środowisku Apache, a dokładniej Xampp.
Teraz jest to troche utrudnione, poniewaz sa to różne projekty o róznych wymaganiach środowiskowych, róznych wersjach Php i ogólnie projekty różne.
Wstępnie zainstalowałem juz maszyne wirtualna VirtualBox.
Teraz chce skonfigurować tyle maszyn ile projektów, czyli 5.
Pięć maszyn wirtualnych. Na każdej instaluje Ubuntu. Jak juz mam Ubuntu, to odpalam taka maszyne i instaluje xampp z wersją PHP od 5.6 do 7.2.
W ten sposób uzyskuje 5 różnych środowisk do developowania projektami.
Pytanie, czy tak to sie robi? Jak to sie ma do Vagrant, bo wiem,że Vagrant tez potrzebuje maszyny wirtualnej. Jak to sie ma do Docker?
Jak mozna zmieniac kod źródłowy tych projektów z poziomu jednego IDE? Czy jest możliwy dostęp do projektu poprzez jedno IDE?
Uwagi i wskazówki mile widziane. Wiem, że sa tutoriale i tez bede korzystał z porad w nich zawartych, ale licze też na odpowiedzi na forum, bo do poniedziałku chciałbym miec juz wszystko pokonfigurowane.

0

Jak mozna zmieniac kod źródłowy tych projektów z poziomu jednego IDE?

W przypadku maszyn wirtualnych możesz przeważnie udostępniać katalogi z poziomu hosta do klienta (maszyny), bez zabawy w ręczne kopiowanie plików.

Czy jest możliwy dostęp do projektu poprzez jedno IDE?

Patrz: odpowiedź wyżej.

Jak to sie ma do Docker?

Docker nie ma nic wspólnego z maszynami wirtualnymi; tłumaczenie tego od podstaw tutaj nie ma jednak sensu - po prostu otwórz którykolwiek z poradników i wczytaj się w opisy oraz infografiki ;-)

Uwagi i wskazówki mile widziane.

Nie wkopuj się w maszyny wirtualne.

Przygotowanie i uruchomienie VM zajmuje stosunkowo dużo czasu - na pewno znacznie więcej niż np. docker run -it php:7.0 czy minimalna konfiguracja docker-compose (zwłaszcza kiedy poznasz już podstawy)

Docker czy LXD mają dodatkowo tę zaletę że możesz szybko przetestować (choćby z ciekawości) aplikację na innej wersji np. PHPa czy bazy danych bez konieczności kombinowania z robieniem kopii zapasowej konfiguracji i przywracania wszystkiego do oryginalnego stanu później - bywa przydatne ;-)

0
Patryk27 napisał(a):

Nie wkopuj się w maszyny wirtualne.

Przygotowanie i uruchomienie VM zajmuje stosunkowo dużo czasu - na pewno znacznie więcej niż np. docker run -it php:7.0 czy minimalna konfiguracja docker-compose (zwłaszcza kiedy poznasz już podstawy)

Sorry stary ale nie wiesz o czym mowisz:

  1. VAGRANT: https://www.vagrantup.com/downloads.html - sciagasz i instalujesz ;
  2. VIRTUALBOX: https://www.virtualbox.org/wiki/Downloads - sciagasz i instalujesz;
  3. LARAVEL/HOMESTEAD:
vagrant box add laravel/homestead

4a) Utworz folder dla nowego projektu, przejdz do niego, odpal:

composer init

4b) lub przejdz do folderu z istniejacym projektem;
5) Odpal composer'a:

composer require laravel/homestead --dev
  1. Kolejne male polecenie:
vendor\\bin\\homestead make
  1. W przypadku Windows jeszcze maly dodatek do C:\Windows\System32\drivers\etc\hosts:
192.168.10.10 project.test
  1. Restart comp'a;
  2. Odpal z folderu z projektem:
vagrant up
  1. Na wszelki wypadek sprawdz czy wszystko dziala:
vagrant ssh  (CTRL+D zeby wyjsc)
  1. Przejdz do przegladarki i wpisz :
project.test
  1. i hula bez problemu :D;
  2. konczysz robote:
vagrant halt

Stawiasz kilka takich vm'kow i mozesz sie bawic ze swoimi ejpiajkami, microservisami itp itd.

Poniewaz jest pozno i pisze "z palca" wiec mogla sie trafic gdzies jakas literowka :D wazne jest, ze wszystko trwa max 30 minutek.

0

wazne jest, ze wszystko trwa max 30 minutek.

Czyli nieco dłużej niż apt install docker-ce docker-compose i docker-compose up ;-)

Uruchomienie samej maszyny wirtualnej też zajmuje znacznie więcej czasu niż docker run czy docker-compose up, nie mówiąc o wymaganiach w stosunku do pamięci trwałej czy RAMu.

Gdzie ta przewaga Vagranta? :-)

Btw, wskazałem od razu docker-compose up zamiast ręcznego odpalania wielu kontenerów, ponieważ sam opierasz się na gotowym obrazie Homestead.

0
Patryk27 napisał(a):

Gdzie ta przewaga Vagranta? :-)

Nie mialem zamiaru rozpoczyna polemiki na temat wyzszosci swiat Bozego Narodzenia nad swietami Wielkanocy. Odnioslem sie po prostu do Twojej przestrogi dot. vagranta i "stosunkowo dlugiego czasu" niezbednego do uruchomienia dzialajacego srodowiska (30 min to tez takie +/-). Po prostu sie z tym nie zgadzam, nie oceniajac ktory jest lepszy. Ty przeciez rowniez nie musisz stac sie nagle najwiekszym fanem moich opinii :D.

0

Po prostu sie z tym nie zgadzam

Z tym że podałeś przykład potwierdzający to co ja powiedziałem: że szybciej jest postawić środowisko z Dockerem niż Vagrantem :-)

0
Patryk27 napisał(a):

Po prostu sie z tym nie zgadzam

Z tym że podałeś przykład potwierdzający to co ja powiedziałem: że szybciej jest postawić środowisko z Dockerem niż Vagrantem :-)

Ja swoje Ty swoje. W tej chwili zaden z nas nie jest w stanie udowodnic jak jest szybciej, ale przeciez nie o to chodzi czy pare minut w te czy we wte.
Musi wyjsc na Twoje chocby nie wiem co ?
Niech Ci bedzie, ale czy naprawde wazne sa dla Ciebie tego typu satysfakcje ? Bo dla mnie na przyklad wazniejsze jest, ze to nie dzieki Twojej ale mojej instrukcji kazdy bedzie w stanie odpalic sobie vm'ke nawet jesli nie ma pojecia czym rozni sie docker od vagranta.

0

ale przeciez nie o to chodzi czy pare minut w te czy we wte.

Chwilę przedtem sam napisałeś, że odnosiłeś się do czasu postawienia środowiska - teraz twierdzisz, że jednak nie o to chodzi.

Musi wyjsc na Twoje chocby nie wiem co ?

Nie musi - po prostu rozmawiamy; dlaczego traktujesz to jak atak?

Niech Ci bedzie, ale czy naprawde wazne sa dla Ciebie tego typu satysfakcje

Jakiego rodzaju satysfakcje? Po prostu rozmawiamy.

Bo dla mnie na przyklad wazniejsze jest, ze to nie dzieki Twojej ale mojej instrukcji kazdy bedzie w stanie odpalic sobie vm'ke nawet jesli nie ma pojecia czym rozni sie docker od vagranta.

Z tym że autor nie pytał o żadną instrukcję stawiania maszyny wirtualnej (których są setki w internecie, a Twój opis jest akurat dosyć niejasny, TBH) - zresztą ja też podałem instrukcję: pobierz docker-compose i odpal docker-compose up ;-)

0

Moim skromnym zdaniem główna przewaga dockera nad virtualbox/vagrant to jego "lekkość". Zarówno pod względem zajmowanej przestrzeni na dysku twardym i przede wszystkim w pamięci, kiedy mamy odpaloną lub odpalonych kilka maszyn (im więcej tym przewaga dockera większa).

Vagrant ma za to raczej niższy próg wejścia. Musiałem sporo poczytać zanim zrozumiałem filozofię dockera.

Jeśli masz mało RAMu albo słabo u Ciebie z pojemnością dysku to lepiej nie myśl o vagrant.

0
Patryk27 napisał(a):

... Z tym że autor nie pytał o żadną instrukcję stawiania maszyny wirtualnej (których są setki w internecie, a Twój opis jest akurat dosyć niejasny, TBH) - zresztą ja też podałem instrukcję: pobierz docker-compose i odpal docker-compose up ;-)

Troche bylem zajety, dlatego "nie zglosilem interpelacji" wczesniej :D, ale co sie odwlecze to nie uciecze. Mam do Ciebie ogromna i nie podszyta zadnymi podtekstami prosbe i mam nadzieje ze ja spelnisz nie tylko dla mnie, ale dla dobra calego forumowego ogolu.

Czy moglbys z laski swojej, w podobny do mnie spospob opisac w formie wypunktowanej instrukcji najepsza/najkrotsza/najbardziej optymalna sposob uruchomienia docker'a lokalnie na komputerze. Uprzedzeajac Twoje ewentualne odwolania do niezawodnosci wujka google, oraz masy dostepnych zrodel mozliwych do znalezienia za jego pomoca, chcialbym miec swiadomosc zastosowania dzieki Tobie optymalnego podejscia, nauczyc sie czegos wartosciowgo od Ciebie, a jednoczesnie dac sie przekonac iz zastosowanie dockera w porownaniu do vagrant'a ma wiekszy sens.
Wierze, ze skoro ja, jako junior, moglem swoje krok po kroku napisac z "palca" pozno w nocy, ty jako posiadajacy wieksze doswiadczenie senior rowniez nie bedziesz mial z tym trudnosci.
Zatem reasumujac prosze Cie opisz mi krok po kroku (instalacja/instrukcje) oraz wykorzystanie docker'a dla przykladowego swiezo przygotowanego projektu. Bede szczerze wdzieczny, raz uczac sie czegos nowego, dwa przekonujac sie, iz jest to rozwiazanie szybsze, wydajniejsze, prostsze itp itd. Wykonam wszystko oczywiscie ze stoperem w reku :D.

0

Czy moglbys z laski swojej, w podobny do mnie spospob opisac w formie wypunktowanej instrukcji najepsza/najkrotsza/najbardziej optymalna sposob uruchomienia docker'a lokalnie na komputerze

Całe cztery kroki: https://laradock.io/ ;-)

Ja sam mam już przygotowane własne zestawy Dockerfile-ów i docker-compose.yml-ów, więc z tego konkretnego nie korzystałem, ale schemat pozostaje podobny.

1

Jeżeli chcemy czegoś wygodnego, konfigurowalnego, lekkiego i szybkiego to polecam:
https://laragon.org/
Przeszedłem przez programowanie na serwerze via FTP, Homestead, Dockera, Laradock i nigdy bym już nie wrócił do żadnego z nich.
Uważam, że Docker jest świetnym narzędziem, bo widziałem co potrafi na produkcji, ale póki co do szybkiej developerki, bez konieczności uczenia się nowych technologii to niewątpliwie Laragon wygrywa.

Rozwiązania, które wymieniłem zawsze miały jakieś bolączki - skomplikowana konfiguracja, problemy z własnymi domenami, a co najważniejsze szybkość. Zwłaszcza Homestead działał po prostu wolno, programowanie na przymulającej instancji programu jest po prostu męczące.

1 użytkowników online, w tym zalogowanych: 0, gości: 1