我正在尝试使用docker设置一个dotnet核心开发环境。我指的是以下指南来进行设置。 LINK
docker run --rm -it -p 8000:80 -v c:\git\dotnet-docker\samples\aspnetapp:/app/ -w /app/aspnetapp microsoft/dotnet:2.1-sdk dotnet watch run
该示例项目在端口80上运行。这里没有问题。
但是,当我使用dotnet cli搭建项目时,应用程序将在容器内部的端口5000、5001而不是80上运行。
dotnet new webapi
是什么使示例应用程序在端口80上运行?我比较了以下文件,但在这里找不到任何帮助。
链接到GitHub以获取我的代码。 LINK
命令我的项目
docker run --rm -it -p 8000:80 -v c:\git\dotnet-docker-demo:/app/ -w /app microsoft/dotnet:2.1-sdk dotnet watch run
编辑:
这里没有涉及的docker文件。我正在尝试使用直接在源代码上运行的dotnet watch。我不想构建dll,然后在容器中运行它。
最佳答案
您可以在docker文件中提及端口号,在下面的docker镜像文件中用箭头突出显示了端口号
# FROM microsoft/dotnet:2.0-sdk AS build
FROM microsoft/dotnet:2.0-sdk
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY TodoService/*.csproj ./TodoService/
RUN dotnet restore
# copy everything else and build app
COPY TodoService/. ./TodoService/
WORKDIR /app/TodoService
RUN dotnet publish -o out /p:PublishWithAspNetCoreTargetManifest="false"
# FROM microsoft/dotnet:2.0-runtime AS runtime
FROM microsoft/dotnet:2.0-runtime
ENV ASPNETCORE_URLS http://+:80 # <----------------
WORKDIR /app
COPY --from=0 /app/TodoService/out ./
ENTRYPOINT ["dotnet", "TodoService.dll"]
关于docker - Docker中的Dotnet Core开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51733448/