【发布时间】:2022-01-03 20:04:14
【问题描述】:
如何使用 docker 文件为简单的 csharp 应用程序编译一个(或多个)文件?我的目标是创建一个类似于 w3 学校 here 的小型 csharp repl。我看过this question,但它不适合我的需要。我没有 .csproj 文件,我从一个简单的 main.cs 文件开始,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
class MainClass {
static void Main() {
Console.WriteLine("Hello World!");
}
}
我想知道我可以将上面的代码作为一个字符串,并使用一个 dockerfile 来编译和运行它以获得输出。具体来说,我可以使用什么基础映像,在执行此操作之前是否需要安装任何其他软件包?下面的 dockerfile 取自另一个似乎合理但我不想编译 asp.net 程序的堆栈溢出问题。
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /app
COPY <your app>.csproj .
RUN dotnet restore <your app>.csproj
COPY . .
RUN dotnet publish -c Release -o out
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS runtime
WORKDIR /app
COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "<your app>.dll"]
【问题讨论】: