TrueNAS SCALE + Docker Compose

Z kronikarskiego obowiązku i z racji szybkich i wszelkich zmian wspomnę tylko, że materiał nagrywam na wersji TrueNAS-SCALE-22.12.3.1 aktualnej na lipiec 2023.

 

Jeżeli interesuje kogoś coś w rodzaju wstępu to w materiale [TrueNAS SCALE + Docker + Kubernetes – jak to zrobić ] opowiadam jak zainstalować Docker na TrueNAS SCALE i dlaczego nie sztymuje to na TrueNAS CORE. Opowiadam też dlaczego właśnie Kubernetes jest jedynym słusznym /możliwym wyborem w wypadku TrueNAS SCALE.

Docker Compose na TrueNAS – dlaczego?

No tak ale czasem potrzebujemy użyć Docker Compose. Prawda? No dobra czasem może tylko chcemy ale to i tak dobry powód.

 

Być może macie już TrueNAS SCALE i nie chce wam się instalować wirtualnej maszynki żeby coś przetestować.

 

Zresztą jak chcieli byście wiedzieć o samym Docker Compose więcej to zapraszam do materiału [Docker Compose – co?, po co? i jak? – złożone aplikacje na „klik”]

 

No ale Docker Compose i Kuberneres są .. nie kompatybilne. W olbrzymi skrócie są po prostu innymi sposobami zarządzania kontenerami.
Teoretycznie na TrueNAS SCALE mogli byśmy po prostu doinstalować pakiet Docker Compose bo przecież pod spodem mamy po prostu Debiana. APT INSTALL .. i tak dalej. Co prawda najpierw musieli byśmy pogrzebać, żeby w ogóle umożliwić instalowanie w ten sposób, bo pierwotnie nie bez przyczyny jest to zablokowane. Ty nie mniej tak to jest możliwe i działa. Tylko, że działając w ten sposób działamy wbrew zamysłowi twórców. A w takiej sytuacji nie dziwny się, że może to nie działać w sposób przewidywalny no i prawie na pewno nie przetrwa aktualizacji TrueNAS.

Docker Compose na TrueNAS – incepcja

Jak jest potrzeba to i najczęściej już ktoś ją miał wcześniej i najczęściej już to ciekawie rozwiązał. W tym wypadku ludzie z projektu TrueCharts [https://truecharts.org/] tworzący osobny od TrueNAS projekt  tworzą gotowe do zaimplementowania aplikacje tutaj też dali radę.

 

To rozwiązanie jest dosyć ciekawe ale warto o nim coś wiedzieć przed użyciem. Bo to trochę taka incepcja. Zdecydowanie jest to intuicyjne, przynajmniej na początku. Otóż jak chcemy odpalić kontenery za pomocą Doekce Compose na TrueNAS, czyli tak na prawdę na kubernetesie to musimy zainstalować aplikację ze wspomnianego TrueCharts. Niby nic prostszego ale powoli są haczyki. Tak naprawdę w  momencie instalacji aplikacji Docker Compose w tle przy pomocy kubernetesa zostaje uruchomimy kontener zawierający wszystko co potrzeba żeby uruchomić Docker Compose.

 

Dopiero w tym momencie możemy się zalogować do naszego kontenera z Docker Compose odpalonego na bazie kubernetesa i w nim odpalić naszą aplikację.

 

No i tak dochodzimy na naszej incepcji czyli odpalamy kontener w kontenerze.

Jak to działa?

Jako, że kontenery z definicji są bezstanowe, czyli po restarcie nie ostają się w środku żadne zmiany, to oznacza, że musimy zamontować  w środku potrzebne do działania naszej aplikacji katalogi. Tylko, że musimy pamiętać o naszej incepcji. Napierw musimy zmapować katalogi potrzebne do działania naszego kontenera Docker Compose na katalowi w naszym TrueNAS. Potem musimy a pliku docker-compose.yml zamontować katalogi naszej aplikacji na katalogi kontenera Docker Compose. Kłopot polega między innymi na tym podwójnym mapowaniu, ponieważ katalogi o które nam chodzi będą miały inną ścieżkę na TrueNAS, inną w kontenerze Cocker Compose a jeszcze inna w naszej aplikacji. I wierzcie mi da się pogubić.

 

Drugą sprawą o której musimy pamiętać do jest sieć. Tutaj znowu będzie przysłowiowa baba w babie. Może ktoś pamięta taką zabawkę.

 

Tak żeby było prawilnie to znowu mapujemy porty naszego TrueNAS na porty kontenera z Docker Compose i potem mapujemy porty w Docker Compose na porty kontenera naszej aplikacji. Tym jednak razem  dla uproszczenia każemy naszemu kontenerowi Docker Compose podłączyć się bezpośrednio do sieci zewnętrznej i nadamy mu IP obok naszego TrueNAS. Żeby odrobinę uprościć sprawę.

 

 

Jeśli chcielibyście dowiedzieć się więcej o TrueNAS napiszcie do nas. Opowiemy Wam jak działa i dlaczego warto?