Mam prostą aplikację napisaną w node js i chcę ją odpalić w kontenerze docker'owym.
Kontener uruchamiam poleceniem :
docker run -p 3244:80 -d --rm -v /var/www/poligon/nodejs-app-starting-setup:/app -v /app/node_modules
zemsta_rudego
Gdy treść pliku dockerfile wygląda tak
FROM node
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . .
EXPOSE 80
CMD ["node", "server.js"]
I zbuduję obraz to jest dobrze, działa jak należy. Jednakże jeśli dockerfile wygląda tak
FROM node
WORKDIR /app
COPY package.json /app
RUN npm install
EXPOSE 80
CMD ["node", "server.js"]
Czyli usunąłem COPY . . to już przestaje działać - nie ma folderu node_modules i nawet nie odpala aplikacji. Nie do końca rozumiem dlaczego tak się dzieje. Jeśli muszę kopiować node_modules poprzez polecenie COPY do obrazu to co się dzieje gdy jest uruchamiany npm install? Nie zapisuje tego do obrazu bezpośrednio? Jeśli nie do obrazu to co się dzieje z folderem node_modules po npm install ?