Как скопировать обратно в пакет хоста-lock.json/yarn.блокировка после установки зависимостей внутри контейнера docker?

#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