#node.js #git #docker #yarnpkg #yarn-lock.json
#node.js #мерзавец #докер #yarnpkg #пряжа-замок.json
Вопрос:
Я использую контейнеры Docker для запуска своего приложения CRA. Я использую 2 разных файла DockerFile, один для запуска CRA в разработке и один для создания сборки. На этапе установки зависимостей:
FROM node:15.5.0-alpine3.10
USER node
RUN mkdir /home/node/code
WORKDIR /home/node/code
COPY package.json yarn.lock ./
RUN yarn
ENV PATH /home/node/code/node_modules/.bin:$PATH
CMD yarn start
Мне нужно скопировать мою обновленную пряжу.заблокируйте файл (или файл package-lock.json использует NPM) обратно на хост после того, как контейнер сгенерирует новую версию файла.
Мне пришлось искать решение повсюду, но я не нашел ничего, что могло бы решить эту проблему.
Комментарии:
1. Я бы рекомендовал делать все в обратном порядке: запускать
yarn upgrade
на вашем хосте, запускать модульные тесты, а затем запускатьdocker build
для создания нового образа. (Разве в этом Dockerfile не должна бытьCOPY . .
строка для копирования приложения в изображение?)
Ответ №1:
например, docker cp docker cp [running container id]:/home/node/code/yarn.lock yarn.lock
. Вы также можете использовать тома, а не копировать вещи внутрь и наружу.
Ответ №2:
Я наткнулся на свой путь здесь, возможным решением является использование:
ЗАПУСТИТЕ yarn install —frozen-lockfile