我正在尝试使用
Dockerfile
来构建 docker 镜像。
如何在 Dockerfile 中创建基于平台的条件检查。
例如,
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG BUILDPLATFORM
IF ${BUILDPLATFORM} == 'windows'
FROM mcr.microsoft.com/dotnet/aspnet:8.0
ELSE
FROM mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022
您最好修复基本映像,因此这不是必需的,可能会构建您自己的基本映像。但要做到这一点,这里有一个选项,要求您定义所有平台:
ARG BUILDPLATFORM
FROM --platform=$BUILDPLATFORM golang:alpine AS build
# ...
FROM mcr.microsoft.com/dotnet/aspnet:8.0 as dotnet-base-windows
FROM mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 as dotnet-base-linux
FROM dotnet-base-${BUILDPLATFORM}
# ...