Это не так, как это работает.Несколько FROM
директив позволяют вам создавать многоступенчатые Dockerfile
.Все этапы изолированы и выполняются последовательно.Можно получить доступ к файлам из одного этапа в другом, но для этого файлы должны быть скопированы в соответствующий этап, но я не буду описывать это здесь.
В вашем случаеоднако вам не нужно использовать многоступенчатую сборку, просто установите gcc
как пакет, аналогичный другим пакетам:
FROM alpine:3.9
RUN apk add --no-cache bash gawk sed grep bc coreutils g++
RUN g++ ...
Вы также можете создать виртуальный пакет, чтобы удалить все пакеты сборки, когда выс этим покончено.Приведенный ниже пример удаляет gcc
после его использования:
FROM alpine:3.9
RUN apk add --no-cache bash gawk sed grep bc coreutils \
&& apk add --no-cache --virtual build-dependencies g++ \
&& g++ ... \
&& apk del build-dependencies
Дайте мне знать, если это поможет.