pm2 deployment

Do zarządzania aplikacjami w node.js często wykorzystywany jest pm2. Działa on również produkcyjnie na serwerze, na którym docelowo będzie hostowania aplikacja. Jedną z możliwości jakie pm2 oferuje, jest wsparcie podczas deploymentu aplikacji.

Zacznijmy od przygotowania konfiguracji.

Stworzy to nam plik ecosystem.json, na którym domyślnie bazuje konfiguracja deploymentu. Podajemy niezbędne dane i… pierwsze podejście do deploymentu nie udane.

Kosztowało mnie to trochę czasu zanim doszedłem, że na czystym windowsie aplikacji w pm2 nie zdeplojuje. Za to w konsoli z git bash, deployment już poszedł o krok dalej.

W drugim kroku okazało się, że aplikację jeszcze muszę najpierw „zsetupować” na serwerze, na który deployment będzie robiony 🙂

I tym razem problem pojawił się z

Okazało się, że jako parametr trzeba podać plik json z konfiguracją aplikacji, a nie jak w przypadku pm2 start, nazwę pliku js.
Ponieważ nie chciałem ecosystem.json wrzucać do repozytorium, odpowiednią sekcję postanowiłem dodać do package.json

Plik ecosystem.json wygląda mniej więcej tak:

Wyjaśnienia może jeszcze wymagać sekcja post-deploy, parametr –env production/stage.
W package.json, w sekcji app mamy obiekty env_production i env_stage, wywołanie –env [par] spowoduje ustawienie odpowiednich zmiennych środowiskowych na serwerze. Na podstawie tych zmiennych środowiskowych, wczytywane są właściwe dane konfiguracyjne dla naszej aplikacji.

Czas wrócić do kodowania serwera, ale o tym w następnym poście 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *