背景:在公司的业务架构中,我们既使用ARM架构,又使用AMD架构。为了满足双架构的需求,我们需要确保所有的镜像都能够支持这两种架构。使用buildx工具可以解决这个双架构的问题。然而,有些工具可能要求我们在构建时下载特定架构的源代码或二进制包,这两者都需要根据目标架构来区分。因此,我们需要在构建过程中能够动态地选择并下载对应目标架构的源代码或二进制包。
参考链接:https://blog.csdn.net/this_is_id/article/details/130243195
FROM centos:7
ARG TARGETPLATFORM
WORKDIR /home/app
RUN yum install -y wget cronie gcc make openssh-clients zlib-devel openssl-devel libffi-devel python-d
evel unzip
# Install aws-cli
RUN if [[ $TARGETPLATFORM == *amd* ]];then \
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"; \
else \
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"; \
fi \
&& unzip awscliv2.zip \
&& cd aws \
&& sh install \
&& aws --version
构建镜像:
docker buildx build --platform linux/amd64,linux/arm64 -t base:ops-v06 .