Coraz więcej firm z branży IT korzysta z funkcjonalności Docker’a jako pomocy dla zespołów programistów. W tym tekście przybliżę możliwości tej platformy i postaram się przekonać do użytkowania Docker’a do pracy z Laravel. Nie będę próbował zmieniać developerów w DevOpsów – nie zamierzam wnikać drobiazgowo w działanie Dockera, czy też jego w budowę. Przedstawione przykładowe instalacje oraz wykonania komend implementowane były w środowisku Ubuntu, ale nawet jeśli korzystasz z innego systemu to ten artykuł będzie dla Ciebie również pomocny.


Marek Tenus. Full Stack Developer w HighSolutions. Fan Laravel & AWS, entuzjasta Nativescript & ML. Ma ponad dziesięcioletnie doświadczenie w programowaniu w PHP. Dwa lata pracował z Ruby on Rails, ma także komercyjne doświadczenie pracy w Pythonie/Django. Dziś pracuje z Laravelem/Lumenem, PHP7 i podnosi swoje umiejętności w programowaniu aplikacji mobilnych w NativeScript i Angularze.

Docker – czym on właściwie jest?

Wszystko zaczęło się od wewnętrznego projektu dotCloud, nad którym pracował Solomon Hykes — miał on za zadanie usprawnienie procesu tworzenia projektów w firmie. Finalnie, w 2013 roku efekt jego prac został udostępniony dla szerokiej publiki, która stopniowo zamieniała się w wiernych użytkowników. Z mojego programistycznego punktu widzenia, Docker to po prostu platforma dająca możliwość uruchomienia środowiska pracy w wirtualnym środowisku kontenerów, które posiadają:

1. systemy plików (rootfs)

2. procesy

3. pamięć urządzenia

4. porty sieciowe

Uruchamianie kontenerów jako procesów w środowisku Linux zmniejsza jego obciążenie, a to z kolei pozwala na używanie Dockera nie tylko w środowisku programistycznym, ale również i produkcyjnym. Co więcej, możliwości stawiania platform z różnorodnymi kontenerami w ramach jednego systemu ułatwia odwzorowanie architektury mikroserwisów.

Jeżeli zależy wam na zgłębieniu wiedzy z dziedziny architektury i szerokich funkcjonalności Dockera, zachęcam do przejrzenia i przeczytania jego dokumentacji.

Instalacja Docker’a

Czas na przedstawienie procesu instalacji dla system Ubuntu. Jeśli korzystacie z innego systemu – przeczytajcie opis instalacji stworzony specjalnie dla niego.

Na starcie należy zaktualizować bazę paczek:

Instalujemy paczki niezbędne do kolejnych kroków:

Dodajemy GPG key:

Sprawdźmy dodatkowo, czy mamy właściwy fingerprint:

Dodajemy repozytorium Docker’a dla x86_64 / amd64:

Po raz kolejny przeprowadzamy aktualizację bazy paczek:

Przeprowadzamy instalację edycji CE Docker’a:

Na koniec upewniamy się, czy Docker został poprawnie zainstalowany:

Docker dla środowiska PHP

Dość ciekawym rozwiązaniem dla programistów używających Laravel, ale również innych frameworków bądź aplikacji napisanych w PHP, a chcących pracować z Docker’em jest narzędzie Laradock. Najprościej możemy określić Laradock jako zestaw narzędzi (aplikacji, oprogramowań), przygotowanych do stworzenia środowiska pracy dla programistów PHP.

Dla deweloperów pracujących na Laravelu – ale i na innych frameworkach czy aplikacjach napisanych w PHP – którym zależy na pracy z Dockerem, interesującym narzędziem może być Laradock. Co to jest? W najprostszym ujęciu jest to zestaw akcesoriów (aplikacji czy oprogramowań) przygotowanych po to, aby stworzyć środowisko pracy dla deweloperów PHP.

Bazowymi narzędziami, z których możemy korzystać są:

  • Bazy: MySql, PostgreSql, MongoDB, MariaDB
  • Cache: Redis, Memcached, Aerospike
  • Serwery: Apache, Nginx, HHVM
  • “Kompilatory”: PHP FPM, HHVM
  • Proxy: HAPProxy
  • Kolejkowanie: RabbitMQ, PHP Worker, Beanstalkd
  • Inne: PhpMyadmin, Varnish, Jenkins, Laravel Echo, Elasticsearch…

Środowisko Docker’a może być postawione – w zależności od naszych potrzeb – dla jednej lub wielu aplikacji. W kolejnych krokach pokażę sposoby wykorzystania jednej instalacji Dockera do obsługi wielu (n) aplikacji Laravel.

Na starcie tworzymy katalog służący do „umiejscowienia” środowiska pracy i naszych aplikacji.

Instalujemy Laradock:

Następnie należy wejść do katalogu laradock i stworzyć plik konfiguracyjny z wszystkimi parametrami pracy Docker’a i dostępnymi narzędziami (to w tym miejscu ustawiamy hasło do bazy danych, Redis’a czy wersję PHP etc.):

Edytujemy plik .env:

Definiujemy niezbędne parametry:

Przy okazji warto zauważyć, że Docker posiada swój plik konfiguracyjny z ustawieniami, które wykorzystywane są do budowania kontenerów i działania danych serwisów – docker-compose.yml.

Na tym etapie można przeprowadzić pierwsze uruchomienie środowiska pracy, które jest dość typowe dla programistów PHP:

Funkcjonowanie uruchomionych kontenerów można sprawdzić w poniższy sposób:

Polecenie to wyświetli nam tabelę uruchomionych kontenerów z informacją o ich ID, statusie, poleceniu oraz portach na jakich pracują.

W wyniku naszych działań aplikacja działa już pod adresem:

A phpmyadmin pod urlem:

Laravel w środowisku Docker

Na starcie należy przejść do powłoki środowiska pracy, jako użytkownik laradock:

Następnie tworzymy pierwszy projekt w Laravel:

Ustawiamy host’y dla baz danych:

Instalujemy wymaganą paczkę i kończymy instalację aplikacji:

Zainstalowana aplikacja jest dostępna pod urlem:

Ustawienie własnej domeny

Ustawienie własnych domen pod projekty, nad którymi pracujemy w środowisku lokalnym jest najlepszym rozwiązaniem dla programistów. Kilka prostych komend pozwoli to zrobić – do dzieła!

1) Konieczne jest określenie IP, pod którym pracuje Docker – do tego służy komenda:

Jako wynik zapytania otrzymujemy IP:

2) Określamy nazwę naszej domeny i przypisujemy ją do powyższego IP:

3) Modyfikujemy konfigurację hosta, aby był on powiązany z naszą domeną:

4) Aby zakończyć proces, resetujemy serwer:

5) Pod zdefiniowanym urlem powinna już być widoczna nasza strona:

Zadania w tle – konfiguracja

Prawidłowa instalacja frameworka Laravel wymaga również ustalenia crontaba pod tworzenie schedule’ra.

Aktualizacja zmian:

Aliasy

Aliasy dają programiście możliwość sprawniejszej pracy z poziomu konsoli.

Lista aliasów wyświetla się po wejściu do pliku – naturalnie jest możliwość dodania własnych.

Warto pamiętać, że po każdej zmianie konieczne jest przebudowanie i restart kontenera. W tym przypadku jest to workspace.

Nie są to wszystkie możliwości Laradock, ale na pewno wystarczą, aby rozpocząć swoją podróż z Docker’em.

Jeżeli Docker nie jest jeszcze przez Ciebie używany… najwyższy czas to zmienić! ☺


Artykuł został pierwotnie opublikowany na stronie highsolutions.pl.

Zapraszamy do dyskusji
Nie ma więcej wpisów

Send this to a friend