【发布时间】:2021-04-12 10:19:16
【问题描述】:
我在将 docker 用于 C# 应用程序时遇到了很多问题。
这是我遇到的第一个问题:我需要在 8080 端口上运行的 docker 容器中运行映像。我已经尝试了 Visual Studio 2019 中的所有内容,但我找不到让它在 8080 端口上运行的方法。基本上当我点击播放按钮时,它会忽略 dockerfile 的 EXPOSE 8080/tcp 条目,并在随机端口上的容器中运行图像。
我尝试使用“docker run -d -p 8080:80 aspnetapp”从命令行运行该图像,其中“aspnetapp”是图像的名称。一切似乎都很好,在 Docker Desktop 中我可以看到它试图在端口 8080 上运行,但容器退出并显示错误代码 0。
当我从 Visual Studio 运行时,一切正常,但我无法更改为端口 8080。
这是我的 dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 8080/tcp
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["ProductDirectory.csproj", "."]
RUN dotnet restore "./ProductDirectory.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "ProductDirectory.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ProductDirectory.csproj" -c Release -o /app/publish
EXPOSE 8080/tcp
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ProductDirectory.dll"]
【问题讨论】:
标签: c# docker dockerfile containers visual-studio-2019