0

我正在玩一个 Dockerfile,我有这个:

ARG PUID=1000
ARG PGID=1000
RUN groupadd -g $PGID docker-user && \
    useradd -u $PUID -g docker-user -m docker-user && \
    mkdir /home/docker-user/.composer

COPY container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
RUN chown -R docker-user:docker-user /home/docker-user/.composer
USER docker-user
RUN composer global install

但是当我尝试构建图像时,它以以下错误结束:

Step 6 : COPY container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
lstat container-files/home/docker-user/.composer/composer.json: no such file or directory

根据此输出,该文件确实存在于主机上:

$ ls -la workspace/container-files/home/docker-user/.composer/
total 12
drwxrwxr-x 2 rperez rperez 4096 Oct  5 11:34 .
drwxrwxr-x 3 rperez rperez 4096 Oct  5 11:14 ..
-rw-rw-r-- 1 rperez rperez  208 Oct  5 11:20 composer.json

我也尝试过这种语法:

COPY container-files /

但也没有用。所以我应该问:怎么了?为什么这一次又一次地失败?我在这里缺少什么?

4

1 回答 1

1

文档通过以下方式解决了这个问题:

默认情况下, docker build 命令将Dockerfile在构建上下文的根目录中查找 a 。, -f,--file选项允许您指定要使用的替代文件的路径。这在同一组文件用于多个构建的情况下很有用。路径必须指向构建上下文中的文件。如果指定了相对路径,则将其解释为相对于上下文的根。

在这种情况下,我认为是

COPY workspace/container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
于 2016-10-05T16:06:35.373 回答