композе прописал:
services:
frontend:
image: react
build:
context: ./app
ports:
- 3011:3010
volumes:
- ./app:/*/app:rw
- ./app/babel.config.json:/*/babel.config.json:rw
# The volume is effectively hiding node_modules from the host and must be in this order
- node_modules:/src/node_modules
volumes:
node_modules:
В самом докерфайле:
EXPOSE 3010
ENV APP_HOME *
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
COPY package.json ./
RUN npm install --no-progress --ignore-optional
CMD npm run start
Главный вопрос, как получить package-lock.json ???
Зачем тебе его получать?
Чтобы зависимости при переносе в пром остались
Это вы в прод собираетесь так деплоить?
так зачем тебе зависимости переносить и npm install вызывать, если на этапе билда контейнера ты монтируешь node_modules в контейнер?
но если не задаваться вопросами про твой алгоритм сборки контейнера, то ответ на оригинальный вопрос такой: так же, как ты получаешь package.json COPY package.json ./ COPY package-lock.json ./
Но у меня нет на хосте этого файла, он появляется при инсталляции в докер
этот файл надо в гите хранить точно так же, как package.json
В прод контейнер надо создавать с помощью multi stage builds - 1 стейдж - копируете код и package.json с локфайлом в контейнер с нодой, билдите это все в статику, а во втором стейдже - настраиваете nginx на раздачу этой статики Чаще всего это делается так
Это знаю, и в нжинкс предавать
Ну, у вас, откровенно говоря, что-то странное node_modules монтируются зачем-то, и т.д.
Обсуждают сегодня