При использовании COPY с более чем одним исходным файлом, место назначения должно быть каталогом и оканчиваться на / - PullRequest
0 голосов
/ 06 декабря 2018

Я решил использовать форму множественного источника COPY для сохранения промежуточной команды, но когда я ее запускаю, появляется следующая ошибка:

Step 17/22 : COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH
When using COPY with more than one source file, the destination must be a directory and end with a /

В Dockerfile у меня есть это:

ARG APP_PATH='/usr/share/app/'

ONBUILD COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH

Редактировать

Просто чтобы прояснить, это происходит с ONBUILD при наличии и без, просто так получилось, что я вставил в ONBUILD пример


Я пробовал с одинарными кавычками и без них.Аргумент имеет косую черту и является каталогом, так почему сборка не учитывает его?

Я бы хотел превратить этот Dockerfile в шаблон, используя ONBUILD, поэтому было бы хорошо, если бы я мог сделатьубедитесь, что APP_PATH arg заполнен значением по умолчанию, которое будет работать.

Любая помощь или понимание будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Ответ, как и в Docker версии 18.09.0, сборка 4d60db4, заключается в том, что не делайте так, потому что это не сработает.

В итоге я жестко запрограммировал каталог назначения (иЧоун Аргс тоже):

ONBUILD COPY --chown=app:app Gemfile Gemfile.lock /usr/share/app/
0 голосов
/ 06 декабря 2018

Поскольку COPY находится в ONBUILD, ARG также должно быть в ONBUILD

Вы можете думать, что Docker копирует (внедряет) вашу команду ONBUILD сразу после следующей FROM, на этом этапе он не знает вашу ARG, если ваша ARG не добавлена ​​с ONBUILD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...