#docker #dockerfile #docker-build
#docker #dockerfile #докер-сборка
Вопрос:
Я играю с Dockerfile, и у меня есть это:
ARG PUID=1000
ARG PGID=1000
RUN groupadd -g $PGID docker-user amp;amp;
useradd -u $PUID -g docker-user -m docker-user amp;amp;
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 /
Но тоже не сработало. Итак, я должен спросить: что не так? Почему это продолжает терпеть неудачу один раз и один раз? Чего мне здесь не хватает?
Комментарии:
1. где находится Dockerfile?
2. @Federkun это команда, которую я запускаю для создания образа
docker build -t reypm/workspace -f ./workspace/Dockerfile .
другими словами: я нахожусь в корневой папке, покаDockerfile
workspace
Ответ №1:
В документации это рассматривается с помощью:
По умолчанию команда сборки docker будет искать a
Dockerfile
в корне контекста сборки. Параметр-f
,--file
, позволяет указать путь к альтернативному файлу для использования вместо него. Это полезно в тех случаях, когда один и тот же набор файлов используется для нескольких сборок. Путь должен быть к файлу в контексте сборки. Если указан относительный путь, то он интерпретируется как относительный к корню контекста.
В этом случае я думаю, что
COPY workspace/container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
Комментарии:
1. Да, это сработало, добавление
workspace
в начале пути выполнило задание