2016-10-05 11 views
0

Я играю с Dockerfile и у меня есть это:«Нет такого файла или каталога», что случилось в этом файле 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/

Но также не работал. Поэтому я должен спросить: что случилось? Почему это постоянно терпит неудачу? Что мне здесь не хватает?

+0

где находится Dockerfile? – Federkun

+0

@Federkun это команда, которую я запускаю, чтобы создать образ 'docker build -t reypm/workspace -f ./workspace/Dockerfile'. Другими словами: я в корневой папке, а' Dockerfile' находится в 'workspace ' – ReynierPM

ответ

1

The documentation обращается к этому с:

By default the docker build command will look for a Dockerfile at the root of the build context. The -f , --file , option lets you specify the path to an alternative file to use instead. This is useful in cases where the same set of files are used for multiple builds. The path must be to a file within the build context. If a relative path is specified then it is interpreted as relative to the root of the context.

В этом случае я считаю

COPY workspace/container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer 
+0

Да, это сработало, добавив' workspace' в начале пути, сделайте задание – ReynierPM