Wpis z mikrobloga

No siema mirony, mam pytanie odnośnie dockera, a raczej docker-compose.

Mam sobie konfigurację docker-compose.yml picrel, serwisy:
- app - tutaj mam po prostu php z fpm
- web - serwer nginx
- database - baza mysql

W projekcie chcę korzystać z npm, babela i webpacka, więc jak npm to i node. No i teraz pytanko, jak to ogarnąć poprawnie, żebym mógł wydać komendę: npm install?

Do głowy przyszedł mi pomysł, żeby dodać kolejny serwis o nazwie node czy jakiś inny frontendogarniacz z dockerfile:

FROM node:11.7.0
no i wydawać komendy:
docker-compose exec frontend_ogarniacz sh -c 'npm install && npm run build' - robi się tak czy raczej c-----y pomysł?

Kolejny pomysł:
Czy może nie dodawać nowego serwisu tylko zainstalować node i npm w serwisie app tj. zmienić app.dockerfile:

FROM php:7.3.1-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev \
mysql-client \
**nodejs** \ # doinstalować
&& docker-php-ext-install pdo_mysql

przebudować, i tak samo wydawać komendy:

docker-compose exec app sh -c 'npm install && npm run build'
W sumie ta druga opcja do mnie bardziej przemawia :D Doradźcie xd

#programowanie #docker
p.....u - No siema mirony, mam pytanie odnośnie dockera, a raczej docker-compose.

...

źródło: comment_gd5cLaTKdRb24bYfjbMehs5oLOzBj4KP.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@prezydent_wykopu możesz też poszukać gotowego obrazu który ma PHP i NodeJs już zainstalowane. Na dockerhubie jest sporo różnych konfiguracji najpopularniejszych frameworków. Ale to będzie prawie to samo co byś zainstalował sam, z tą różnicą że obraz będzie aktualizowany przez właściciela, a o swój dockerfile musisz troszczyć się sam :)
  • Odpowiedz
@prezydent_wykopu: Najlepiej jakbys użył States builds czy jakoś tak. W sensie instalujesz sobie wszystko potrzebne do zainstalowania zależności. Potem bierzesz tylko artefakty i wrzucasz do nowego obrazu z minimalnym wymaganym runtime. To jest taka trzecia opcja, ale nie znam Docker compose. Rozumiem, ze on buduje obrazy za każdym razem tak?
  • Odpowiedz