例如,以下是基于.NET 5的Dockerfile示例:
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime
WORKDIR /app
COPY --from=build /app/out ./
CMD ASPNETCORE_URLS=http://*:80 dotnet app.dll
例如,以下是一个使用docker-compose来构建和运行ASP.NET Core Webapi的例子:
version: '3.7'
services:
webapi:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:80"
environment:
- ASPNETCORE_URLS=http://*:80
无论哪种方式,都要确保在启动时使用正确的url。如果指定的是127.0.0.1或localhost,那么在运行时将无法从容器外部访问Webapi。