Создать многоступенчатый файл Docker - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть 2 разных файла Docker (производственная и тестовая среда).Я хочу создать один многостадийный файл Docker с этими 2 файлами Docker.

Первый файл Docker, как показано ниже:

FROM wildfly:17.0.0

USER jboss

RUN mkdir /opt/wildfly/install && mkdir /opt/wildfly/install/config

COPY --chown=jboss:jboss  install /opt/wildfly/install
COPY --chown=jboss:jboss install.sh /opt/wildfly/bin

RUN mkdir -p $JBOSS_HOME/standalone/data/datastorage

CMD ["/opt/wildfly/bin/install.sh"]

Второй файл Docker, как показано ниже:

FROM wildfly:17.0.0

USER jboss

RUN mkdir /opt/wildfly/install && mkdir /opt/wildfly/install/config

COPY --chown=jboss:jboss  ./install /opt/wildfly/install
COPY --chown=jboss:jboss install.sh /opt/wildfly/bin

RUN rm /opt/wildfly/install/wildfly-scripts/Setup.cli
RUN mv /opt/wildfly/install/wildfly-scripts/SetupforTest.cli /opt/wildfly/install/wildfly-scripts/Setup.cli

RUN rm /opt/wildfly/install/wildfly-scripts/Properties.properties
RUN mv /opt/wildfly/install/wildfly-scripts/Properties-test.properties /opt/wildfly/install/wildfly-scripts/Properties.properties

RUN mkdir -p $JBOSS_HOME/standalone/data/datastorage

CMD ["/opt/wildfly/bin/install.sh"]

Вопрос Как создать многоступенчатый файл Docker для этих файлов2 файла докера?

Заранее спасибо.

1 Ответ

0 голосов
/ 20 сентября 2019

Я не уверен, что то, что вы пытаетесь сделать, требует многоэтапной сборки.Вместо этого вы можете использовать пользовательское базовое изображение (для dev), которое будет вашим первым блоком кода, и использовать это базовое изображение для производства.

Если первое изображение было помечено как shanmukh/wildfly:dev:

FROM shanmukh/wildfly:dev

USER jboss

RUN rm /opt/wildfly/install/wildfly-scripts/Setup.cli
RUN mv /opt/wildfly/install/wildfly-scripts/SetupforTest.cli /opt/wildfly/install/wildfly-scripts/Setup.cli

RUN rm /opt/wildfly/install/wildfly-scripts/Properties.properties
RUN mv /opt/wildfly/install/wildfly-scripts/Properties-test.properties /opt/wildfly/install/wildfly-scripts/Properties.properties

Это может быть помечено как shanmukh/wildfly:prod.


Причина, по которой я не думаю, что вам нужна многоступенчатая сборка, заключается в том, что вы упомянули, что пытаетесьработать с двумя средами (тестовая и производственная).

Даже если вы хотите сказать, использовать многоступенчатую сборку для производства, то, как я вижу, нет причин для этого.Если ваш начальный этап сборки включал в себя установку зависимостей сборки, таких как компилятор, копирование кода и его сборку, то было бы эффективно использовать многоэтапную сборку, так как конечный образ не будет включать исходные зависимости (такие как компилятор и другие.потенциально опасные инструменты разработчика) или любые ненужные артефакты сборки, которые были произведены.

Надеюсь, это поможет.

...