Hej!
Siedząc ostatnio w projekcie komercyjnym sealcodu zacząłem się zastanawiać czy nie można by naszego developmentu w 100% pociągnąć za pomocą dockera. Co mam na myśli?
Na ten moment możemy wywoływać komndy npma z w dockerze za pomocą ./npm.sh
. Jednak gdy sprobujemy odpalic watcha to dostaniemy informacje ze tmux nie jest zainstalowany na tym obrazie
➜ xd (master) ✅ ./npm.sh run watch
+ docker-compose run --rm --service-ports test npm run watch
> sealious-app@0.1.0 watch
> multiple-scripts-tmux "npm run typecheck:back -- --watch" "SEALIOUS_PORT=$SEALIOUS_PORT SEALIOUS_BASE_URL=$SEALIOUS_BASE_URL nodemon --enable-source-maps ." "npm run build -- --watch" "npm run typecheck:front -- --watch"
/bin/sh: 1: tmux: not found
Z tego co pamietam to poza npmowa paczka potrzebujemy tez zainstalowac samgeo tmuxa?
Często też były problemy z tym kto jakiej wersji nodea używa.
Pomysł na to mam taki, żebyśmy stworzyli i opublikowali (albo na dockerhubie albo zrobic wlasne repo do obrazow dockerowych) obraz specjalnie napisany do selcodowego developmentu. Ustalałby on wersje nodea z góry oraz miał zainstalowane wszystko co potrzebne czyli chociażby tmuxa. Można by też pójść o krok dalej i zainstalować tam arcanista, ale wymyśliłem to teraz jak piszę i może to nie jest najlepszy pomysł bo trzebaby go konfigurować przy starcie nowego projektu od nowa (choć rozwiązałoby problem z updatetami arcanista ktore sie tez od czasu do czsau zdarzaly).
Gdy już byśmy mieli taki obraz to po prostu suealoius-playground
moglby go uzywac w pliku docekr-comopse
i npm.sh
by w nim odpalal wszysktie npmowe komendy
Wydaje mi sie ze takie rozwiazanie ma kilka polusow. Przedewszystkim jeszcze bardzije zmniejszamy liczbe potencjalnyhc problemow akie moga napotkac siweze osoby. Caly onboarding sprowadzałby się do zainstaluj arcanista, dodaj klucz sh, sklonuj repo, docker-compose up -d
i używaj npm.sh
. Znika wiele probelmow z instalowaniem paczek oraz tym kto jakiej wersji nodea uzywa.
Druga zaleta to zwiekszylaby sie liczba osob ktore potencjalnie moglyby brac udzial w projektach. Do tej pory z tego co pamietam z stakciem sealcodowym mialy problemy osoby uzywajace maca lub windowsa. Wydaje mi sie ze uzywanie dockera juz rozwiazuje probelm maca i z wyczytalme tez ze docker comose jest instalowany na windowsie wraz z docekr desktop
If you installed Docker Desktop/Toolbox for either Windows or Mac, you already have Docker Compose! Play-with-Docker instances already have Docker Compose installed as well. If you are on a Linux machine, you will need to install Docker Compose.
Oznaczałoby to, że moglibyśmy dodać do sealious-plaground
podobny skrypt do npm.sh
np. npm.cmd
i osoby z windowsem moglyby bez problemu brac udzial w tych projektach,
Co myślicie na ten temat i czy widzicie jakies potencjalne niedopatrzenia?