logo
51
166
WeChat Login

Dockerfile: COPY pnpm-lock.yaml ./ 报错#1521

Resolved
created 2025-08-07
Edit

提供一下 trace id 或 响应头 traceparent?

9c01d8bb3ef35e7f33ca3b220a836e0f

描述一下重现步骤?更快的确认问题

[build Dockerfile] #7 [4/6] COPY pnpm-lock.yaml ./
[build Dockerfile] #7 ERROR: failed to calculate checksum of ref 9ba0a8c8-5043-4db4-891e-3b4392d39936::rk6xcjs5kp06rnzypxzoj6jif: "/pnpm-lock.yaml": not found
[build Dockerfile] 
[build Dockerfile] #8 [3/6] COPY package.json ./
[build Dockerfile] #8 ERROR: failed to calculate checksum of ref 9ba0a8c8-5043-4db4-891e-3b4392d39936::rk6xcjs5kp06rnzypxzoj6jif: "/package.json": not found

仓库是有这两个文件的,.dockerignore文件也是不存在的,Dockerfile文件本地构建是成功的

@folgerfan(folger) 文档中的这部分您看是否也应该体现出来?
0d6fa245-b743-4572-bfda-f4db46519581.png

Administrator

@folgerfan(folger) 文档中的这部分您看是否也应该体现出来?
0d6fa245-b743-4572-bfda-f4db46519581.png

@cn.dlovely(未央残雪,月华浮生) 体现出来,是指?

上述问题修复后再次运行,报错
dad0b708-d504-416f-b939-1c72ecc321ed.png
不清楚是否是没有挂volumn的原因?但是在文档的具体用例中也未体现
trace: 3f659c60a10e5d8340e505bd43425345

@cn.dlovely(未央残雪,月华浮生) 体现出来,是指?

@folgerfan(folger) 就是docker.build.by,同样是使用了COPY,但是用例中没有写by

Administrator

Dockerfile 里,有没有 pnpm install

Dockerfile 里,有没有 pnpm install

@folgerfan(folger) 有的有的

FROM guergeiro/pnpm:24-10-alpine

WORKDIR /data/orange-ci/workspace

COPY package.json ./
COPY pnpm-lock.yaml ./

RUN npm config set registry https://mirrors.tencent.com/npm/

RUN pnpm install --frozen-lockfile

为何不在dockerfile内部加一个RUN ls 看下文件tree... 原生debug 分分钟的事

Administrator

data/orange-ci/workspace
这个目录应该是ci工作目录,被覆盖了
这里的docker应该是准备环境,比如哪些软件
install可以放到stages里,再配上缓存

Administrator

也可以在dickerfile里把工作目录设为其他,stages里再把nodemodules拷贝过来

为何不在dockerfile内部加一个RUN ls 看下文件tree... 原生debug 分分钟的事

@cnb.ZM6fBONzBPA(Kane.Yu) 是的喔,执行之后node_modules文件是存在的,所以整个人迷茫了起来,嘿嘿(/_\)

1

data/orange-ci/workspace
这个目录应该是ci工作目录,被覆盖了
这里的docker应该是准备环境,比如哪些软件
install可以放到stages里,再配上缓存

@folgerfan(folger) 因为文档中的用例里是这么用的,所以我就这么用了,依赖的话应该是要放在dockerfile里吧,毕竟都是同一个依赖

也可以在dickerfile里把工作目录设为其他,stages里再把nodemodules拷贝过来

@folgerfan(folger) 这个我明天试试,今天下班了(˵¯͒〰¯͒˵)

@folgerfan(folger) 有没有能在本地模拟云原生构建的方式?就像vscodegithub actions一样,就不用反复提交来测试这个构建流程了

刚刚试了下把工作目录设为了/tmp/pnpm,但是还是会在工作流中报错mv: can't rename '/tmp/pnpm/node_modules': No such file or directory

// Dockerfile
FROM guergeiro/pnpm:24-10-alpine

# WORKDIR /data/orange-ci/workspace
WORKDIR /tmp/pnpm

COPY package.json pnpm-lock.yaml ./

RUN npm config set registry https://mirrors.tencent.com/npm/

RUN pnpm install --frozen-lockfile

RUN pwd
RUN ls -alF
// 云原生构建
[build Dockerfile] #10 [6/7] RUN pwd
[build Dockerfile] #10 0.252 /tmp/pnpm
[build Dockerfile] #10 DONE 0.3s
[build Dockerfile] 
[build Dockerfile] #11 [7/7] RUN ls -alF
[build Dockerfile] #11 0.370 total 408
[build Dockerfile] #11 0.370 drwxr-xr-x    1 root     root            52 Aug  8 01:57 ./
[build Dockerfile] #11 0.370 drwxrwxrwt    1 root     root            56 Aug  8 01:57 ../
[build Dockerfile] #11 0.370 drwxr-xr-x    3 root     root            27 Aug  8 01:57 .turbo/
[build Dockerfile] #11 0.370 drwxr-xr-x    8 root     root          4096 Aug  8 01:57 node_modules/
[build Dockerfile] #11 0.370 -rw-r--r--    1 root     root          1966 Aug  6 04:00 package.json
[build Dockerfile] #11 0.370 -rw-r--r--    1 root     root        408579 Aug  6 04:00 pnpm-lock.yaml
[build Dockerfile] #11 DONE 0.4s

trace: d47e4ccb20edd2a6ac1236b191e39c3a

Administrator

docker run -it --rm -v $(pwd):$(pwd) -w $(pwd) <image:tag> sh

像这种命令可以用image拉起个容器,登录进去。

你可以试试不在. dockerfile里install,把 install放到stages里。

文档里的例子我们调整下

Administrator

登录到镜像容器调试可以参考这个文档
https://docs.cnb.cool/zh/build/faq.html#zai-ben-di-ming-ming-hao-de-wei-shen-me-zai-ci-shang-pao-shi-bai-liao

e0ac3d45-0f8b-4aff-8fd3-1fb9829947ac.png 把image换成自己的镜像名

docker run -it --rm -v $(pwd):$(pwd) -w $(pwd) <image:tag> sh

像这种命令可以用image拉起个容器,登录进去。

你可以试试不在. dockerfile里install,把 install放到stages里。

文档里的例子我们调整下

@folgerfan(folger) 这个在之前的测试中是可行的,但目前是想在云原生构建中实现这个将 pnpm 缓存到环境镜像中,加速后续pnpm i过程

0d6fa245-b743-4572-bfda-f4db46519581.png

当然除了Dockerfileinstall了,在.cnb.yml中也是配置了install的,只是在复制node_modules的时候就被中断了

Assignee
None yet
Label
None yet
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant