【问题标题】:How to copy back to host package-lock.json/yarn.lock after install dependencies inside docker container?在 docker 容器内安装依赖项后如何复制回主机 package-lock.json/yarn.lock?
【发布时间】:2021-04-17 20:59:19
【问题描述】:

我正在使用 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

在容器生成文件的新版本后,我需要将更新后的 yarn.lock 文件(或 package-lock.json 文件正在使用 NPM)复制回主机。

我到处搜索解决方案,但没有找到任何解决此问题的方法。

【问题讨论】:

  • 我建议按照相反的顺序执行操作:在主机上运行 yarn upgrade,运行单元测试,然后运行 ​​docker build 以构建新映像。 (Dockerfile 不应该有一个COPY . . 行来将应用程序复制到映像中吗?)

标签: node.js git docker yarnpkg yarn-lock.json


【解决方案1】:

docker cp,例如docker cp [running container id]:/home/node/code/yarn.lock yarn.lock。您也可以使用volumes,而不是复制输入输出。

【讨论】:

    【解决方案2】:

    我在这里跌跌撞撞, 一个可能的解决方案是使用:

    运行 yarn install --frozen-lockfile

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 2018-05-30
      • 2019-04-06
      • 1970-01-01
      • 2019-07-09
      • 2021-08-14
      • 1970-01-01
      相关资源
      最近更新 更多