gpt4 book ai didi

c# - 如何将命令行参数传递给 docker run 并打印它?

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:53 28 4
gpt4 key购买 nike

我创建了一个支持 docker (linux) 的 .Net core 2.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("参数是 {0}", args);)

但是,docker run MyApp:dev 不会打印任何内容。并且 docker run MyApp:dev ABC 得到以下错误。

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"ABC\": executable file not found in $PATH": unknown.

我尝试了 docker run -it MyApp:dev dotnet/app/MyApp.dll ABC 并得到了错误

Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

运行 docker run -it MyApp:dev dotnet 显示了 dotnet 的用法。

PS C:\Temp> docker run -it MyApp:dev dotnetUsage: 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 是空的。 找到。 -name MyApp.dll 找不到任何东西?

最佳答案

看起来您正在做的事情应该有效。我刚刚在这里做了一个 repo :

https://github.com/rquackenbush/DotNetCoreArgs

构建后:

docker build .

我能够运行:

docker run <imageid> ABC

我得到了:

Hello World!
There are 1 args.
ABC

关于c# - 如何将命令行参数传递给 docker run 并打印它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com