Передача переменных среды по этапам в многоступенчатом образе докера
У меня есть образ докера с 4 нижними слоями.
Я хочу уменьшить размер моего текущего слоя изображения, используя многоступенчатый режим, но это приводит к потере свойств конфигурации среды, порта и cmd на всех этапах. Есть ли способ передать такие переменные конфигурации через этапы вDockerfile
.
1 ответ
Вы можете сделать одно из следующих
Используйте базовый контейнер и установите там значения среды
FROM alpine:latest as base
ARG version_default
ENV version=$version_default
FROM base
RUN echo ${version}
FROM base
RUN echo ${version}
Другой способ - использовать ARGS
как показано ниже. Есть некоторые повторения, но они становятся более централизованными
ARG version_default=v1
FROM alpine:latest as base1
ARG version_default
ENV version=$version_default
RUN echo ${version}
RUN echo ${version_default}
FROM alpine:latest as base2
ARG version_default
RUN echo ${version_default}
Примеры заметок скопированы с https://github.com/moby/moby/issues/37345