 No to cześć ekipa. W ogóle na wstępie przepraszam, ale oblałem się wodą przed całym wejściem tutaj, więc w razie to to jest woda, nie, nic innego. Dobra, więc tak, jestem Piotr Znodomski, jestem deweloperem w Piłik Pro, to takie słowem wstępu. I o czym dzisiaj porozmawiamy, porozmawiamy sobie o, to jest taka agenda, o agenda obrazkowa. Porozmawiamy sobie, to bardziej będzie taki tutorial, jak sobie stworzyć środowisko deweloperskie. Tutaj nacisk kładę na deweloperskie, ponieważ nie stosowałbym tego raczej na produkcji, raczej na pewno. I to to środowisko deweloperskie jest dosyć ciekawe, tak mi się wydaje, że Wam też się spodoba, bo składa się z elementów, no oczywiście jest WordPress, ale nie mamy tutaj web-servera, tutaj gwiazdka, ale no nie jest taki typowy web-server, nie ma Apache, nie ma Enginix, czy tego typu web-serverów i nie ma, ma z danych, ma SQL, czy Maria, która normalnie jest spierana w WordPressie, będziemy używać SQLite'a. No i dobrze, przejdźmy sobie może przez te wszystkie elementy, komu to potrzebne, dlaczego. Więc tak, chciałem sobie zrobić środowisko deweloperskie, które będzie przede wszystkim lekkie, szybkie, skonfigurowane i gotowe do użycia, tak, out of the box. Mam do zakodowania jakąś wtyczkę, jakiś motyw, klonuję sobie repozytorium, klikam, podnoszę do kera i już mam całe środowisko, nie muszę nic robić, nie muszę nic więcej konfigurować, nie muszę się o nic martwić, po prostu działa. I przede wszystkim to środowisko jest odseparowane, czyli mogę mieć na każdym z moich tych środowisk innego PHP'a, inny zestaw wtyczek, inną bazę, etc. i nie muszę się martwić, na przykład, że te PHP'y się między sobą będą gryzły, bo one są odseparowane w osobnych kontenerach do kera, więc nie ma problemu. No i tak po kolei, pierwszy element to PHP'a, tego naszego setupu. Poza interpreterem oczywiście, który PHP'a nam dostarcza i jest potrzebny do działania WordPressa, wykorzystuje go tutaj również jako web server. PHP bodajże od wersji 5.3 ma wbudowany web server i można go łatwo odpalić z linii koment, tutaj pokazany na slajdzie, z przełącznikiem S. Podejemy następnie jedynie IPK, na którym chcemy go sobie odpalić port i ten magiczny plik router, który będzie nam potrzebny do zrutowania naszych URLi. Normalnie w WordPress'ie robiłby to modrive write w Apache, jeżeli używamy Apache i wtedy w hata chce się mielibyśmy takie oto linijki. One są przepisane do PHP'a po prostu, żeby to działało dokładnie jeden do jeden w naszym środowisku, w naszym serwerze PHP'owym. Od razu słyszałem jeszcze tak na pomknę te linki, które są na górze, to są linki już do gotowych fragmentów kodu, które można sobie pobrać i to postawić, a na końcu będzie też w ogóle link do repo, więc żeby się postawić całe środowisko. Kolejnym elementem jest SQLite, czyli nie użyłem Maria czy MySQL, ze względu, że jest to kolejny duży klocek, który waży, którego w sumie nie potrzebujemy, żeby stądka szybko działała jako tylko środowisko deweloperskie. No i jest to kolejny też kontener, więc użyłem SQLite. Nie wiem czy wiecie, jest taka integracja właśnie oficjalna wtyczka w Repozytorium WordPress'a, którą wydał automatik i rozwija teraz społeczność. Wystarczy sobie tą wtyczkę ściągnąć, przerzucić jeden plik, tutaj jest właśnie DB copy, jako addon przerzucić do WP Content'u jako DB PHP i mamy załatwioną sprawę bazy danych. Nic się trzeba konfigurować, nic się nie trzeba w WP Config'u ustawiać, to działa, dan, out of the box. Ok, kolejnym elementem jest kompozer. Ja użyłem sobie kompozera, bardzo lubię do instalacji wszystkich zależności, w tym motywów, wtyczek i samego Core WordPress'a. Jest to o tyle proste, a, jeżeli ktoś nie wie, co to jest kompozer, to kompozer to jest właśnie system zarządzania pakietami w PHP. I kompozer jest o tyle fajny, że w tym otopliku wystarczy tylko rozpisać, jakie wtyczki, jakie motywy chcemy sobie zainstalować i jaką wersję WordPress'a i dan, i odpalamy kompozera i to się stawia. Więc, więc super proste, możemy wybrać wersję, w jakiej chcemy, znowu ta przewaga tego separowanego środowiska, że możemy na każdym z naszych środowisk sobie zainstalować innego WordPress'a, w innej wersji, inne wtyczki, inne motywy. I to tylko dzięki tekstowemu Jasonowi, gdzie sobie uzupełniamy go, jak chcemy i jeszcze, że było fajniej. Ostatnia linika to jest dokładnie przeniesienie tego pliku DB Copy jako adona do WP Content'u, też robi kompozer, nam załatwia nam tą sprawę, więc super proste. No i ostatni element, spinający nam wszystko do kupy, to jest doker, doker to jest oprogramowanie realizujące generalnie wirtualizację. Tak w skrócie, można powiedzieć, jeżeli nie korzystaliście, polecam bardzo, doker jest super, kuba napisał też tutaj siedzący super poradnik, jak sobie postawić dokera, korzystałem, więc polecam. I taka krótka legenda, w sumie najistotniejsze jest z niej to, że potrzebujemy również pliku tekstowego, który się nazywa Dockerfile, w którym podobnie jak tam w kompozerze, tylko tam jest w formacie Jason, tutaj jest dokerowy plik, ale również tekstowy wypisujemy tylko nasze zależności, jak chcemy zbudować obraz i to wszystko działa. Wystarczy nam jeden plik tekstowy w repozytorium, więc to jest super lekkie i jak widzicie ten plik zawiera w temku, czy nie wiem, raz, dwa, trzy, cztery, tam z osiem linii jesteśmy w domu, mamy całe środowisko. Pokrótce go omówię, w pierwszej linice pobieramy sobie oficjalny obraz PHP wersji tutaj akurat 8.0, on stoi na alpajnie, to jest taki malutki linuxik, który waży tam z 20 mega, więc znowu super lekkie obraz. Niżej kopiujemy sobie cały nasz projekt do tego kontenera właśnie, ustawiamy WorkingDeer, żeby właśnie wywoływały nam się polecenia w tym właśnie katalogu projektu. Pobieramy skulite, pobieramy kompozera, pobieramy plugin do wspierania zależności WordPressowych, czyli żeby kompozer rozumiał, że chcemy wtyczkę czy motyw zainstalować czy samego WordPressa. Otwieramy port 80 na świat i wywołujemy instalację kompozerem i uruchamiamy nasz web server PHP. I tyle, i tak naprawdę to jest cała nasza konfiguracja i to działa, działa, tylko trzeba to jeszcze odpalić. Czyli tutaj jest kilka koment dokerowych, nie przywiązujcie się za bardzo do nich, chciałem tylko pokazać, że jest tutaj pewien poziom złożoności w tych komendach. Po odbudowaniu obrazu następnie trzeba wiedzieć, na jakim portie chcemy uruchomić ten obraz, później musimy jeszcze stworzyć wolumen i dopiero po tym ranie jesteśmy w stanie zobaczyć to na naszym lokal-choście, żeby wywołać za to basza czy inną konsolę, w tym kontenerze musimy znać idik tego kontenera, który nam się wyświetlić po uruchomieniu. Więc jest tu pewien poziom złożoności i twórcy dokera jakby ogarnęli, że bez sensu jest robić kopiu i wklej i za każdym razem takie długie komendy przeklejać. Więc wyszli programistom i devopsom na przeciw i stworzyli coś takiego jak doker-compose i ten pliczek jamlowy zawiera tą samą konfigurację, którą widzieliście na slajdzie wcześniej, tylko jest zapisana w pliku tekstowym. Więc dokładnie ten wolumen, który tam tworzyliśmy, te porty, które otwieraliśmy i gdzie ma zostać zbudowany obraz, zapisujemy sobie po prostu w pliczku kompos jaml i cała konfiguracja upraszcza nam się do odpalenia tylko komendy doker-compose-up, doker-compose-down, jeżeli chcemy zamknąć. I jeżeli chcemy odpalić Shell i sobie w nim w tym kontenerze łączyć się z naszą linią koment, w tym środowisku odpalamy doker-compose-exec i z nazwą naszego projektu i to już działa. Więc jeszcze okrok bliżej jesteśmy, automatyzacji tego i to już jest teraz naprawdę super proste. I to jest w sumie wszystko, co chciałem powiedzieć. Nie wiem ile czasu nawet mi jeszcze zostało. W każdym razie chciałem was zostawić przede wszystkim z taką myślą, że nie potrzebujemy bazy danych, majskuela, przepraszam, do tego żeby działać z WordPressem, możemy użyć innej bazy i to będzie działać bardzo podobnie, a nawet identycznie w przypadku SQLite, który ta wtyczka ma zostać wciągnięta do kora w najbliższym czasie, więc będziemy mieli wsparcie już natywne dla SQLite'a. I druga myśl to, że nie potrzebujemy Apache, możemy sobie użyć tego serwera pachapowego, co też jest mega wygodne i proste. No i trzecia rzecz, polecam, jeżeli nie próbowaliście pobawić się z dokerem, jest to mega fajne środowisko i każdy projekt możemy sobie mieć w innym kontenerku, odseparowany, robić sobie co chcemy, podnosić, zamykać i to nie gryzie i od momentu, kiedy zacząłem korzystać z dokera, nie ma dla mnie większego sensu instalowanie na maszynie swojej żadnych ksampów, mampów, czy stawianie webserwerów, za każdym razem zastanawianie się o jakś routine, jak coś, nie, po prostu podnoszę sobie kontenet dokera i dan, więc polecam. Dziękuję za uwagę.