首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.net6中使用docker浏览.net6应用程序会引起问题

问在.net6中使用docker浏览.net6应用程序会引起问题
EN

Stack Overflow用户
提问于 2021-11-24 13:33:55
回答 1查看 310关注 0票数 0

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

​

​

因此,我希望在docker上运行它,以便生成docker文件:

代码语言:javascript
复制
#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"]

因此,我创建了这个图像,正如您使用以下命令所看到的:

代码语言:javascript
复制
docker build -t containername/tag -f docker/Dockerfile .

创建映像时,我希望使用以下方法运行我的容器:

代码语言:javascript
复制
docker run -d -p 42419:42419 --name apitest containername/tag:latest

容器是创建的,但是当我调用这个url http://localhost:42419/swagger/index.html时,我无法看到swagger页面.Why?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-24 13:42:36

要使Swagger可用,应用程序需要将环境变量设置为“Development”。它在生产中是不可用的,而这正是Docker默认的目标。

可以在运行命令中添加ASPNETCORE_ENVIRONMENT变量,如下所示

代码语言:javascript
复制
docker run -d -p 42419:80 -e ASPNETCORE_ENVIRONMENT=Development --name apitest containername/tag:latest

还可以将其添加到Dockerfile中,如果希望将Development添加为默认的,请添加

代码语言:javascript
复制
ENV ASPNETCORE_ENVIRONMENT=Development

在码头文件的“最后”部分的某个地方。

第三种选择是修改startup.cs文件,并在设置Swagger时删除对环境变量的检查。那样的话,无论发生什么,它都是可用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70097047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档