Files
ql_apimanager_backend/Dockerfile
T

29 lines
892 B
Docker

# 使用 .NET 8.0 SDK 作为构建环境
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
# 1. 复制解决方案文件和所有项目的.csproj文件(自动包含所有项目)
COPY *.sln .
COPY */*.csproj ./
# 为每个项目创建目录并移动.csproj文件到正确位置
RUN for file in $(ls *.csproj); do mkdir -p ${file%.*}/ && mv $file ${file%.*}/; done
# 2. 恢复所有项目的依赖
RUN dotnet restore "Apimanager_backend.sln"
# 3. 复制所有源代码
COPY . .
# 4. 构建并发布主项目(假设Apimanager_backend是启动项目)
WORKDIR /src/Apimanager_backend
RUN dotnet publish -c Release -o /app/publish --no-restore
# 5. 使用运行时镜像
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app/publish .
# 6. 配置容器
ENV ASPNETCORE_ENVIRONMENT=Development
EXPOSE 8080
ENTRYPOINT ["dotnet", "Apimanager_backend.dll"]