Docker 在 gitlab 管道中复制新创建的文件失败

Docker COPY newly created file in gitlab pipeline fails

我的 Dockerfile 包含一个 COPY 命令,用于复制刚刚在管道中创建的目录。

COPY ["$CI_PROJECT_DIR/ui-dist/", "/content/ui-dist/"]

COPY 命令失败并出现以下错误:

COPY failed: stat /var/lib/docker/tmp/docker-builder597514812/ui-dist: no such file or directory

但是,我知道该目录存在,因为就在我构建图像之前,ls $CI_PROJECT_DIR/ui-dist 打印 bundle.js

跑步者正在使用 dind 服务。我不确定这是否相关。

编辑:

好的,我尝试删除对 env 变量的引用。即我将管道从

更改为
- docker cp ui:/content/dist $CI_PROJECT_DIR/ui-dist
- docker build --tag ${IMAGE_ID} api

- docker cp ui:/content/dist ui-dist
- docker build --tag ${IMAGE_ID} api

并且我已将 docker 命令更新为

COPY ["ui-dist/", "/content/ui-dist/"]

我仍然收到此错误消息:

COPY failed: stat /var/lib/docker/tmp/docker-builder488922739/ui-dist: no such file or directory

我明白了。我必须将资产复制到 Dockerfile 所在的 api 文件夹中。

docker 构建发生在 /builds/$CI_PROJECT_PATH/

因此,必须将资产复制到 /builds/$CI_PROJECT_PATH/api