我有一个由 Yarn 管理的 monorepo,我想利用 Docker 缓存层来加速我的构建,为此我想首先复制 package.json
和 yarn.lock
文件,运行 yarn install
然后复制其余文件。
这是我的回购结构:
packages/one/package.json
packages/one/index.js
packages/two/package.json
packages/two/index.js
package.json
yarn.lock
这是 Dockerfile 中感兴趣的部分:
COPY package.json .
COPY yarn.lock .
COPY packages/**/package.json ./
RUN yarn install --pure-lockfile
COPY . .
问题是第三个 COPY
命令没有复制任何东西,我怎样才能达到预期的结果?
原文由 Fez Vrasta 发布,翻译遵循 CC BY-SA 4.0 许可协议
有一个基于 多阶段构建 功能的解决方案:
在
Step 5
层缓存将被重用,即使packages
目录中的任何文件已更改。