【发布时间】:2018-10-01 01:43:24
【问题描述】:
我有一个由 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命令没有复制任何东西,我怎样才能达到预期的效果?
【问题讨论】:
-
基本上你想做的事情不能按原样工作,因为指定的目标文件夹对于多个文件同名(package.json )。类似地,Bash 命令
cp packages/*/package.json ./不会产生合理的结果。所以我相信你应该在你的Dockerfile文件夹路径中硬编码one和two... -
那么,您选择了哪种解决方案?
-
我没有选择任何一个。我无法在我的环境中使用外部脚本。
标签: docker dockerfile yarnpkg