通过 Nuke 为 Dotnet Core 应用构建自动化流程
- 作者: 五速梦信息网
- 时间: 2026年04月20日 04:48
localImages = new(); Target LoginDocker => _ => _
.Executes(() =>
{
DockerLogin(_ => _
.SetServer(RegistryUrl)
.SetUsername("xxx")
.SetPassword("xxxxx"));
});
Target BuildDockerImages => _ => _
.Executes(() =>
{
foreach (var project in Projects)
{
var tag = $"{ImagePrefix}{project.Name}:{GitVersion.FullSemVer}";
localImages.Add(tag);
DockerBuild(_ => _
.SetProcessEnvironmentVariable("DOCKER_BUILDKIT", "1")
.SetPath(“./”)
.SetFile(project.Directory / "Dockerfile")
.SetTag(tag));
}
});
Target PushImages => _ => _
.DependsOn(BuildDockerImages)
.DependsOn(LoginDocker)
.Executes(() =>
{
foreach (var image in localImages)
{
DockerPush(_ =>
_.SetName(image));
}
});
Target CleanImages => _ => _
.DependsOn(PushImages)
.Executes(() =>
{
foreach (var image in localImages)
{
DockerImageRm(s => s
.SetImages(image)
.SetForce(true));
}
});
Target RunDockerTasks => _ => _
.DependsOn(CleanImages)
.Executes(() =>
{
Serilog.Log.Information($"{ProjectName} 构建结束");
});
} “`
调试
本地运行代码,既可以执行以上逻辑,以及调试;非常方便。
调用
通过 执行命令行:dotnet nuke RunDockerTasks 即可执行镜像的构建与推送,可以很方便的与gitlab、github、jenkins 等结合。

优化
执行以上CI,需要宿主机,安装Dotnet SDK,以实现 Dotnet tools 的安装,以及Docker 客户端的安装;可以考虑使用Docker In Docker的方式,减少对服务器的要求;
默认会对所有的项目进行构建并推送,可以结合 Parameter 的方式,按需指定需构建的项目;
可以使用compose 方式构建,隐藏项目细节;
总结
对于功能不复杂、脚本不熟悉、或者缺少运维的场景下,可以尝试使用。
相关文章
-
听下APP破解2.1.4版本
听下APP破解2.1.4版本
- 互联网
- 2026年04月20日
-
甜甜的词语是什么(甜甜的词语搭配)
甜甜的词语是什么(甜甜的词语搭配)
- 互联网
- 2026年04月20日
-
甜瓜栽培技术要点,省肥省药亩产高
甜瓜栽培技术要点,省肥省药亩产高
- 互联网
- 2026年04月20日
-
通过PM2来管理Node、PHP CLI等脚本应用进程,什么是PM2进程管理器?
通过PM2来管理Node、PHP CLI等脚本应用进程,什么是PM2进程管理器?
- 互联网
- 2026年04月20日
-
通义千问开源 Qwen3 大模型:Spring AI 对接 Qwen3
通义千问开源 Qwen3 大模型:Spring AI 对接 Qwen3
- 互联网
- 2026年04月20日
-
突然就想记录一下,持续记录(社交技巧篇)
突然就想记录一下,持续记录(社交技巧篇)
- 互联网
- 2026年04月20日








