Rails 5.1 konfiguracja Dockera – part 1

Docker

Coraz więcej osób korzysta z Dockera. Jest pomocny zarówno administratorom, jak i programistom. Skupie się dzisiaj na programistycznych zaletach Dockera. Do czego programista może używać Dockera?

Oto kilka zastosowań:

  • – potrzebujemy zainstalować oprogramowanie, ktore wymaga wielu zależności/konfiguracji
  • – automatyzujemy proces deploymentu
  • – chcemy korzystać jednocześnie z różnych wersji oprogramowania np. php5 i php7
  • – chcemy, aby inny programista ‘jednym kliknięciem’ mógł odpalić projekt i aby działało to u niego dokładnie tak jak u nas

Po co dockeryzować?

Dockeryzacja przynosi bardzo duże korzyści, kiedy w zespole pojawia się nowa osoba. Dzięki temu nie trzeba poświęcać czasu na instalowanie projektu na jej komputerze. Jedno kliknięcie i można już pracować. Jest to szczególnie przydatne, kiedy nowa osoba jest Juniorem albo niezbyt dobrze radzi sobie z konfiguracją.

Dwie opcje, aby zdockeryzować aplikację

Do dockeryzacji możemy podejść na dwa sposoby. Pierwszy z nich to wpisanie polecenia ‘zbuduj się aplikacjo’ (docker-compose up), później wchodzimy w przeglądarkę… i możemy zobaczyć naszą działającą aplikację. W teorii brzmi dobrze, ale problemy pojawiają się podczas developmentu. Oto kilka z nich:

  • – rake db:create powinno zostać wykonane tylko przy pierwszym odpaleniu, czyli trzeba oskryptować sprawdzenie czy odpalamy pierwszy raz
  • – jak odpalać testy?
  • – jak odpalić konsole?
  • – jak zobaczyć logi aplikacji?

Oczywiście wszystkie z tych problemów można rozwiązać, komplikując konfigurację albo dodając kolejne warunki do naszego flow. Jednak zamiast tego można wybrać alternatywne podejście.

Zbudujmy takie środowisko, ktore pozwoli nam pracować tak, jak na naszej maszynie

Przy takim założeniu jak w tytule nagle znikaja wszystkie problemy. Po prostu budujemy obraz, pożniej logujemy sie do containera i pracujemy tak jak na naszej lokalnej maszynie. Możemy zalogować się kilka razy do containera i w jednym odpalić railsy, w drugim konsolę, a w trzecim dowolną inną komendę railsową. Czyli budujemy tylko środowisko, natomiast wszystko inne uruchamiamy ręcznie.
Tyle teorii, przejdźmy do Dockerfile-a

… ale to już w następnym poście.