我创建了一个支持Docker(Linux)的.NET Core2.1控制台应用程序。这是系统生成的
Dockerfile
是的。
FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY MyApp/MyApp.fsproj MyApp/
RUN dotnet restore MyApp/MyApp.fsproj
COPY . .
WORKDIR /src/MyApp
RUN dotnet build MyApp.fsproj -c Release -o /app
FROM build AS publish
RUN dotnet publish MyApp.fsproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyApp.dll"]
控制台程序只是打印出参数。(
Console.WriteLine("The args are {0}", args);
)
然而,
docker run MyApp:dev
什么都没印。以及
docker run MyApp:dev ABC
得到以下错误。
C:\程序文件\docker\docker\resources\bin\docker.exe:来自守护程序的错误响应:OCI运行时创建失败:container\u linux.go:348:启动容器进程导致“exe c:\”abc\”:在$path中找不到可执行文件:未知。
我试过了
docker run -it MyApp:dev dotnet /app/MyApp.dll ABC
它的错误是
你是想运行dotnet sdk命令吗?请从以下位置安装dotnet sdk:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
跑步
docker run -it MyApp:dev dotnet
显示的用法
dotnet
是的。
PS C:\Temp> docker run -it MyApp:dev dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET Core information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
我试过了
docker run -it MyApp:dev bash
找到了脏东西
/app
是空的。
find . -name MyApp.dll
找不到任何东西?