как использовать оператор 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 } . . .
В настоящее время в 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