AFAIK, просто "включая" другой Dockerfile не работает.Но на самом деле разрешено использовать несколько операторов FROM
, если вы используете многоступенчатые сборки (см. Документация Docker ).
Например, вы можетесделать что-то вроде этого:
FROM buildpack-deps:stretch AS build
RUN echo "hello world!" > /tmp/foo
FROM ubuntu
COPY --from=build /tmp/foo .
CMD ["cat", "foo"]
Запуск docker build --tag foo . && docker run --rm foo
приводит к hello world!
.Вы можете заменить первый оператор RUN
компиляцией чего-либо или чего-либо, что вы планируете делать.
Существуют и другие способы использования многоступенчатых сборок, например, использование FROM build
в нашем примере напрямую.