Я использую Docker 18.05.0~ce~3-0~ubuntu
, и я хотел бы передать аргумент сборки в FROM, а также в другие строки в моем Dockerfile.Вы ожидаете, что сработает следующее:
ARG FROM_IMAGE=ubuntu:bionic
FROM $FROM_IMAGE
COPY sources_list/$FROM_IMAGE /etc/apt/sources.list
Это работает для второй строки (FROM
), но ведет себя так, как будто оно не установлено в строке COPY
:
Шаг 1/3: ARG FROM_IMAGE = ubuntu: bionic Шаг 2/3: FROM $ FROM_IMAGE ---> 8626492fecd3 [...] Шаг 3/3: COPY sources_list / $ {SOURCES_LIST_FILE} / etc / apt / sources.в списке не удалось скопировать файлы: не удалось скопировать каталог: mkdir /var/lib/docker/overlay2/0536b4e280ddca2fec18db9d79fa625a8be86efdbaaea5b3dbbefcdaaab3f669/merged/etc/apt/sources.list: не каталог
* *1011*build arg, он работает для той же строки
COPY
:
ARG FROM_IMAGE=ubuntu:bionic
FROM $FROM_IMAGE
ARG SOURCES_LIST_FILE
COPY sources_list/${SOURCES_LIST_FILE} /etc/apt/sources.list
Шаг 4/4: COPY sources_list / $ {SOURCES_LIST_FILE} /etc/apt/sources.list ---> 7f974fffe929
Почему я не могу использовать аргумент FROM_IMAGE
дважды, в строке и после строки FROM
?Я не могу найти никаких задокументированных ограничений такого рода.