当我尝试重用 PNPM 存储时,我在 GitLab CI 上的 Docker 构建中收到“不允许跨设备链接”

xeo*_*eon 7 node.js gitlab docker pnpm cicd

我正在尝试将 pnpm 存储与 docker buildkit 内联缓存重用。当我进行本地构建时它工作正常,但在 gitlab ci 上它会抛出cross-device link not permitted错误。

\n

错误

\n
...\n#12 2.257 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/68/31d9850g49ag49cc526af456f4a19a0f76eb85a79b6b311f09df7dd62a2a4d0f5c83de4eb5c6648f8bff155c82edce40a4e6c61cvb71127e1cb93c3cb8ab0f\' -> \'/usr/app/node_modules/.pnpm/on-exit-leak-free@0.2.0/node_modules/_tmp_1_58b64396e8cfdcdv7a5b403e046a9203/LICENSE\'\n#12 2.257 Falling back to copying packages from store\n#12 2.316 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/6b/416bd4d9c57a078ff0a54c56f32039bb01aa5b3a3f07bev60d8ecc6eaa830db5ac4192943d693baaa1fc09b7891306db00055f3805ee6cc02ff353d8477f5c\' -> \'/usr/app/node_modules/.pnpm/pino-abstract-transport@0.5.0/node_modules/_tmp_1_ae5f485297e737f5f3943671v7fd357d/.github/dependabot.yml\'\n#12 2.316 Falling back to copying packages from store\n#12 2.741 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/ba/80df1a5d3176e962200ca4d1304c02617df7ba747736cada94d29e94883f71f4b3231ee0a02c33886ba454215f65ff4320e0cc49f22fb431383f88c483cb9e\' -> \'/usr/app/node_modules/.pnpm/stack-chain@1.3.7/node_modules/_tmp_1_c0e9a25e81dg99592va167a1v86c382s/package.json\'\n#12 2.741 Falling back to copying packages from store\n#12 3.174 Progress: resolved 624, reused 0, downloaded 101, added 96\n#12 4.175 Progress: resolved 624, reused 0, downloaded 184, added 179\n#12 5.175 Progress: resolved 624, reused 0, downloaded 229, added 220\n...\n
Run Code Online (Sandbox Code Playgroud)\n

Dockerfile

\n
FROM node:16-alpine as builder\n\nWORKDIR /usr/app\n\nCOPY package.json .babelrc jsconfig.json esbuild.config.js pnpm-lock.yaml ./\nCOPY src ./src\n\nRUN npm install -g pnpm\n\nRUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \\\n    pnpm fetch\n\nRUN pnpm install --recursive --offline --frozen-lockfile --prod --unsafe-perm && \\\n    pnpm run build\n\nFROM node:16-alpine\n\nWORKDIR /usr/app\n\nCOPY package.json esbuild.config.js ./\nCOPY --from=builder /usr/app/dist dist\n\nEXPOSE 3030\n\nCMD node dist/bundle.js\n
Run Code Online (Sandbox Code Playgroud)\n

亚搏体育appGitLab持续集成

\n
...\n#12 2.257 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/68/31d9850g49ag49cc526af456f4a19a0f76eb85a79b6b311f09df7dd62a2a4d0f5c83de4eb5c6648f8bff155c82edce40a4e6c61cvb71127e1cb93c3cb8ab0f\' -> \'/usr/app/node_modules/.pnpm/on-exit-leak-free@0.2.0/node_modules/_tmp_1_58b64396e8cfdcdv7a5b403e046a9203/LICENSE\'\n#12 2.257 Falling back to copying packages from store\n#12 2.316 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/6b/416bd4d9c57a078ff0a54c56f32039bb01aa5b3a3f07bev60d8ecc6eaa830db5ac4192943d693baaa1fc09b7891306db00055f3805ee6cc02ff353d8477f5c\' -> \'/usr/app/node_modules/.pnpm/pino-abstract-transport@0.5.0/node_modules/_tmp_1_ae5f485297e737f5f3943671v7fd357d/.github/dependabot.yml\'\n#12 2.316 Falling back to copying packages from store\n#12 2.741 \xe2\x80\x89WARN\xe2\x80\x89 EXDEV: cross-device link not permitted, link \'/root/.local/share/pnpm/store/v3/files/ba/80df1a5d3176e962200ca4d1304c02617df7ba747736cada94d29e94883f71f4b3231ee0a02c33886ba454215f65ff4320e0cc49f22fb431383f88c483cb9e\' -> \'/usr/app/node_modules/.pnpm/stack-chain@1.3.7/node_modules/_tmp_1_c0e9a25e81dg99592va167a1v86c382s/package.json\'\n#12 2.741 Falling back to copying packages from store\n#12 3.174 Progress: resolved 624, reused 0, downloaded 101, added 96\n#12 4.175 Progress: resolved 624, reused 0, downloaded 184, added 179\n#12 5.175 Progress: resolved 624, reused 0, downloaded 229, added 220\n...\n
Run Code Online (Sandbox Code Playgroud)\n