.NET核心docker - 如何在dotnet发布后找到条目应用

时间:2018-05-09 03:17:34

标签: docker .net-core

遵循所有.NET Core指南基本归结为dotnet publish并将其输出复制到/app,然后运行dotnet myapp.dll

我在此设置中运行了大约40多种(并且正在增长的)产品,因此使用myapp.dll修改所有dockerfiles会非常费力。

我想知道是否有某种方法可以找出发布期间输入dll的内容? (例如,使用--self-contained cli生成一个特定于arch的条目文件,因此您可以使用该名称,但考虑到发布需要更长时间,这似乎是一个不必要的步骤)

1 个答案:

答案 0 :(得分:0)

您可以创建一个bash脚本来提取项目名称,然后创建一个有效的路径并将其替换为脚本文件。

如果你在解决方案文件夹中,只需运行:(bash)

PROJECT_NAME=`find ./ -name "*.sln" | head -n 1 | cut -d '/' -f 2 | sed 's/.sln//'`

如果您有解决方案文件 myapp.sln ,此命令将返回值 myapp

然后将此值传递给脚本:

./runScript.sh "$PROJECT_NAME"

在这个脚本里面:

dotnet "/app/$1.dll"

对于dockerfiles,您可以替换所有出现的例如。 {{PROJECT_NAME}} 在文件中变量值。现在我不记得命令,但 sed 对此很有用。