# 构建阶段
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src

# 复制整个项目结构
COPY . .

# 进入ZsmAdmin.Web.Entry目录
WORKDIR /src/ZsmAdmin.Web.Entry

# 还原依赖项
RUN dotnet restore

# 构建项目
RUN dotnet build -c Release -o /app/build

# 发布项目
FROM build AS publish
WORKDIR /src/ZsmAdmin.Web.Entry
RUN dotnet publish -c Release -o /app/publish --framework net8.0

# 运行阶段
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 5005

# 复制发布文件
COPY --from=publish /app/publish .

# 设置语言/区域设置环境变量
ENV LANG=zh-Hans
ENV ASPNETCORE_ENVIRONMENT=Production

# 使用阿里云的镜像源进行更新
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/' /etc/apt/sources.list.d/debian.sources
# 更新包管理器并安装free命令
RUN apt-get update && apt-get install -y procps

ENTRYPOINT ["dotnet", "ZsmAdmin.Web.Entry.dll"]

更多推荐