如何根据平台更改Dockerfile中的镜像名称?

问题描述 投票:0回答:1

我正在尝试使用

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
docker dockerfile docker-image
1个回答
0
投票

您最好修复基本映像,因此这不是必需的,可能会构建您自己的基本映像。但要做到这一点,这里有一个选项,要求您定义所有平台:

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}
# ...
© www.soinside.com 2019 - 2024. All rights reserved.