在Docker容器中运行一个C#应用程序,可以通过以下步骤进行:
- 编写C#应用程序:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
编译为Program.csproj项目。
- 构建Dockerfile:
Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "HelloWorld.dll"]
此Dockerfile采用多阶段构建。Core SDK镜像构建应用,Core Runtime镜像仅复制构建好的程序集,并指定为入口点。
- 构建镜像:
docker build -t dotnet-app .
- 运行容器:
docker run -it dotnet-app
输出:
Hello World!
- 在Docker Compose中定义应用:
yaml
version: '3'
services:
dotnet-app:
build: .
image: dotnet-app
docker-compose run dotnet-app
可以一键运行应用。