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 次 |
最近记录: |