0

我的 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
4

1 回答 1

0

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

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

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

于 2020-04-08T23:28:35.757 回答