我將一個 .NET webapi 服務容器化,包括 swagger 和 swagger UI。dotnet run 正確運行應用程式,但是當我將它容器化時,我無法可視化 UI
這是我的碼頭檔案:
FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build
WORKDIR /src
COPY ["DataHandlerAPI.csproj", "./"]
RUN dotnet restore "./DataHandlerAPI.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "DataHandlerAPI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DataHandlerAPI.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DataHandlerAPI.dll"]
我應該改變什么以使其正常運行dotnet run
uj5u.com熱心網友回復:
您需要將環境設定為“開發”,因為 Swagger(默認情況下)僅在開發中可用。默認情況下,容器在“生產”環境中運行。
你可以這樣設定
FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal AS base
ENV ASPNETCORE_ENVIRONMENT=Development
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build
WORKDIR /src
COPY ["DataHandlerAPI.csproj", "./"]
RUN dotnet restore "./DataHandlerAPI.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "DataHandlerAPI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DataHandlerAPI.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DataHandlerAPI.dll"]
uj5u.com熱心網友回復:
我通過將此行添加到我的 dockerfile 解決了這個問題
ENV ASPNETCORE_URLS http://*:80
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/442880.html
