Mug*_*gen 11 node-modules docker dockerfile docker-build
我的目录结构:
??? src/
?????? backend/
???????? Dockerfile
???????? ...
?????? frontend/
???????? Dockerfile
???????? node_modules/
???????? ...
?????? commons/
???????? ...
??? .dockerignore
Run Code Online (Sandbox Code Playgroud)
.dockerignore包括行**/node_modules和我的构建上下文的根目录是由于使用commons。
我两个都跑
docker build ... -f src/backend/Dockerfile .
docker build ... -f src/frontend/Dockerfile .
并行,有时backend构建会因以下特定错误而失败:
错误检查上下文:“文件 ('/workspace/src/frontend/node_modules/.staging/wrap-ansi-2a6f888f') 未找到或被 .dockerignore 排除”。
根据我的理解(请参阅为什么 Node 模块会进入 .staging 文件夹?)该.staging文件夹是临时的,并且在运行它时可能存在竞争条件(请参阅 Docker cli源代码)。
但是,如果node_modules忽略这个文件,为什么首先会走呢?我是在滥用忽略上下文功能还是实际的竞争条件?
该问题在 Google Cloud Build 环境中重现,其中我通过图像使用 docker cli,该图像gcr.io/cloud-builders/docker使用 docker 客户端版本19.03.5并使用 docker server version 18.09.3, API version 运行1.39。
| 归档时间: |
|
| 查看次数: |
3920 次 |
| 最近记录: |