M2上docker构建x86_64的镜像用于dotnet发布AOT程序

更新于 2025-01-26

Alpine

Dockerfile内容

FROM --platform=linux/amd64 alpine:latest
WORKDIR /root
RUN sed -i 's@dl-cdn.alpinelinux.org@mirrors.ustc.edu.cn@g' /etc/apk/repositories && \
    apk update && apk upgrade && \
    apk add gcc g++ make automake autoconf libtool binutils zlib-dev icu-libs wget bash tzdata bash bash-completion shadow

RUN chsh -s /bin/bash
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone

ENV DOTNET_ROOT="/root/.dotnet"
ENV PATH="${PATH}:${DOTNET_ROOT}:${DOTNET_ROOT}/tools"
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
ENV DOTNET_NUGET_SIGNATURE_VERIFICATION=false
RUN ln -s /root/.dotnet/dotnet /usr/bin/dotnet

构建镜像

docker build -t alpine-x86_64 --platform linux/amd64

Debian

Dockerfile内容

FROM amd64/debian:bullseye-slim
WORKDIR /root

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
apt update && apt upgrade -y && \
apt install -y bash wget gcc zlib1g-dev libicu-dev tzdata && \
apt autoremove -y && apt autoclean -y && apt clean -y

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone

ENV DOTNET_ROOT="/root/.dotnet"
ENV PATH="${PATH}:${DOTNET_ROOT}:${DOTNET_ROOT}/tools"
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
ENV DOTNET_NUGET_SIGNATURE_VERIFICATION=false
RUN ln -s /root/.dotnet/dotnet /usr/bin/dotnet


构建镜像

docker build -t debian-x86_64 --platform linux/amd64
浙ICP备19039918号-1