我有这个应用程序,您可以看到我在IIS Express中运行:

因此,我希望在docker上运行它,以便生成docker文件:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Docker/Docker.csproj", "Docker/"]
RUN dotnet restore "Docker/Docker.csproj"
COPY . .
WORKDIR "/src/Docker"
RUN dotnet build "Docker.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Docker.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Docker.dll"]因此,我创建了这个图像,正如您使用以下命令所看到的:
docker build -t containername/tag -f docker/Dockerfile .创建映像时,我希望使用以下方法运行我的容器:
docker run -d -p 42419:42419 --name apitest containername/tag:latest容器是创建的,但是当我调用这个url http://localhost:42419/swagger/index.html时,我无法看到swagger页面.Why?
发布于 2021-11-24 13:42:36
要使Swagger可用,应用程序需要将环境变量设置为“Development”。它在生产中是不可用的,而这正是Docker默认的目标。
可以在运行命令中添加ASPNETCORE_ENVIRONMENT变量,如下所示
docker run -d -p 42419:80 -e ASPNETCORE_ENVIRONMENT=Development --name apitest containername/tag:latest还可以将其添加到Dockerfile中,如果希望将Development添加为默认的,请添加
ENV ASPNETCORE_ENVIRONMENT=Development在码头文件的“最后”部分的某个地方。
第三种选择是修改startup.cs文件,并在设置Swagger时删除对环境变量的检查。那样的话,无论发生什么,它都是可用的。
https://stackoverflow.com/questions/70097047
复制相似问题