Dockerfile if else условие с внешним аргументом для FROM - PullRequest
0 голосов
/ 21 февраля 2019

как использовать оператор FROM if else с внешним ARG.Например, в Dockerfile:

    ARG MYARG

    if MYARG='true'{
    FROM mcr.microsoft.com/windows/servercore:1803
    }
    elseif MYARG='false'{
    FROM mcr.microsoft.com/windows/servercore:1809
    }
    .
    .
    .

1 Ответ

0 голосов
/ 21 февраля 2019

В настоящее время в Dockerfile нет синтаксиса if / else.С помощью BuildKit вы можете воспользоваться преимуществами построения только зависимостей в многоэтапной сборке, чтобы использовать следующий синтаксис:

ARG BUILD_VERSION=1
FROM alpine AS base
RUN …

FROM base AS branch-version-1
RUN touch version1

FROM base AS branch-version-2
RUN touch version2

FROM branch-version-${BUILD_VERSION} AS after-condition

FROM after-condition 
RUN …

Более подробно это описано по адресу: https://medium.com/@tonistiigi/advanced-multi-stage-build-patterns-6f741b852fae

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...