Dagger v0.18.3 版本解析:develop 的 --recursive、免 SDK 模块加载、Vault Secret TTL 与实验性 MCP 工具
DevOpsCI/CD后端CLI云原生【免费下载链接】daggerAutomation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud项目地址https://gitcode.com/GitHub_Trending/da/dagger点击查看免费下载Dagger v0.18.32025-04-14 发布是一个以开发体验打磨为主的补丁版本其变更日志位于 .changes/v0.18.3.md。本篇以该变更记录为核心骨架逐条解析其中 4 项新增能力、2 项缺陷修复与 1 项实验特性并结合当前仓库中仍然可见的对应源码实现MCP 服务端、Vault Secret 缓存 TTL、git 配置解析工具给出源码级佐证帮助读者在升级 0.18.x 线版本时准确理解每项变更的用法与底层机制。版本变更总览v0.18.3 的变更日志按 Dagger 惯例分为 Added / Fixed / Experimental 三个板块完整内容如下引自 .changes/v0.18.3.md分类变更对应上游 PRAddeddagger develop新增--recursive标志#9860Added支持在不指定 SDK 的情况下加载模块#9984AddedContainer.build与Directory.dockerBuild支持跳过自动 init 进程#10088Added本地 Vault Secret 缓存支持指定ttl#9997Fixed修复解析多行 git 配置文件时的报错#10087Fixed修复尝试 shell 补全时的边界 panic#10125Experimental将 Dagger Core API 暴露为 MCP 工具#10090需要说明的适用前提该变更日志对应 2025-04-14 发布的 0.18.x 版本线。当前仓库快照是其后演进得相当远的主干文档目录中已出现 0.190.21 的版本化文档因此下文中对源码的引用反映的是这些特性在当前主干中的演进形态命令行用法请以 v0.18.3 发行版自身的行为为准。Added新增能力逐条解析dagger develop --recursive递归启动本地开发服务v0.18.3 为dagger develop命令新增了--recursive标志。dagger develop的作用是在本地拉起项目声明的服务数据库、API、开发服务器等供开发者在容器外直接调试新增的--recursive使该命令能够递归处理目录/模块结构而不是只处理顶层声明。从当前仓库源码结构看本地开发服务这条能力线已经演进为职责更宽的命令dagger start 的子命令描述为 Run your projects services for local development — databases, APIs, dev servers, etc.其内部流程是解析工作区中的命令 ArtifactcommandArtifactsWithFlags、将结果映射为Service节点、再通过Host().Tunnel(...)建立宿主端口转发runServices并在转发前显式检测端口冲突start.go 中 port collision detected 报错见 internal/cmd/dagger/start.go#L142-L147。可以推断v0.18.3 中develop --recursive所服务的多服务、多模块本地联调场景正是这条服务启动链路的早期形态。免 SDK 指定加载模块降低模块接入门槛此前加载load一个 Dagger 模块往往需要在模块声明中指定具体 SDKv0.18.3 允许省略 SDK 字段直接加载模块PR #9984由引擎根据模块实际代码自动推断合适的 SDK/语言运行时。当前仓库中模块加载与 SDK 解析逻辑分别落在 internal/cmd/dagger/module.go、internal/cmd/dagger/module_sdk.go 与 internal/cmd/dagger/module_init.go 等文件中模块初始化、SDK 选择含动态 SDK与模块解析被拆分为独立职责。从源码结构看这一拆分使得模块定义与模块所用 SDK可以解耦正是 v0.18.3 免 SDK 加载能力的工程基础声明里不再强制绑定 SDK加载器即可按代码内容推断。跳过Container.build/Directory.dockerBuild的自动 init 进程Dagger 在构建容器时默认会执行一个自动的 init 进程负责信号转发、PID 1 回收等。部分场景下例如镜像构建的中间层、或用户自己已经管理进程生命周期时这个自动 init 进程是多余的。v0.18.3PR #10088允许在使用Container.build和Directory.dockerBuild时显式跳过该自动 init 进程。这两个 API 的核心实现分别位于 core/container.goContainer.build的构建流程与 core/directory.goDirectory.dockerBuild的镜像构建入口。这一变更的价值在于构建中间产物不再携带额外的 init 层开销也更接近原生docker build的行为便于与既有镜像构建脚本对齐。Vault Secret 本地缓存支持ttlv0.18.3 允许为从 Vault 拉取并缓存在本地的 Secret 指定ttl控制缓存条目的过期时间PR #9997。这项能力在当前主干中可以直接对照源码验证实现位于 engine/client/secretprovider/vault.go缓存结构dataWithTTL为每条缓存记录附带过期时间见 vault.go#L16 起的dataWithTTL定义与vaultCache全局缓存表ttl通过 Vault Secret 路径的 query 参数传入代码从解析后的 URL 中取ttl参数并用time.ParseDuration解析非法值会直接报错vault.go#L67-L73即写法形如vault://path?ttl10m命中缓存前会先经hasExpired判断是否过期——if no ttl set, assume no ttl requiredvault.go#L117-L119即未设置ttl时缓存不自动失效与 v0.18.3 之前的行为保持向后兼容。从源码结构看这条路径同时还处理了 Vault OIDC 登录与 token 缓存vaultOIDCLogin、saveCachedVaultToken见 vault.go#L203-L208Secret TTL 与 token 缓存共同构成客户端侧的本地缓存层。对使用dagger secret系列命令从 Vault 读取敏感值的用户而言ttl让本地缓存的存活时间变得可预期、可审计。Fixed缺陷修复多行 git 配置文件解析报错v0.18.3 修复了解析多行 git 配置文件例如包含多行includeIf、多段[section]的.gitconfig时产生的解析错误PR #10087。Dagger 在多个场景需要读取 git 配置认证凭据、insteadOf 重写等相关解析工具集中在 util/gitutil 包中包括 util/gitutil/cli.go 与 util/gitutil/config_env.go。修复后结构较复杂的用户级 git 配置不会再导致 git 相关操作报错退出。shell 补全边界 panic同一版本还修复了尝试 shell 补全completion时的一处边界情况 panicPR #10125属于 CLI 健壮性修复避免在特定补全请求下 CLI 进程崩溃。Experimental将 Dagger Core API 暴露为 MCP 工具v0.18.3 最具前瞻性的条目是实验特性将 Dagger Core API 暴露为 MCPModel Context Protocol工具PR #10090使 MCP 客户端如 LLM Agent可以直接调用 Dagger 的核心能力而不必局限于工作区模块声明的函数。该特性在当前主干中已发展为一条完整的 MCP 链路可以据此理解 v0.18.3 引入时的设计CLI 侧为dagger mcp子命令internal/cmd/dagger/mcp.go当前仍标记为experimentalAnnotations: map[string]string{experimental: true}关键开关--env-privileged的帮助文案正是 Expose the core API as toolsmcp.go#L21-L25——即把 Core API 作为工具集暴露出去与 v0.18.3 的 Experimental 条目一一对应服务流程上mcpStart先解析当前 workspace 并校验存在模块或指定了--env-privileged随后通过 GraphQL 查询llm.withWorkspace(workspace: id).__mcp绑定工作区 schema 并启动 MCP 服务mcpStart引擎侧的 MCP 服务端/客户端实现位于 core/mcpserver.go、core/mcpclient.go 与 core/mcp.go。由于dagger mcp依赖 stdio 传输CLI 会强制保证进度输出不干扰标准输入输出若 progress 设为tty则直接报错若为auto且存在 TTY 则自动降级为plainmcp.go#L30-L41。小结v0.18.3 的四项 Added 分别指向本地开发体验develop --recursive、免 SDK 加载模块、构建控制力跳过自动 init 进程与Secret 缓存可控性Vaultttl均为面向模块开发者的渐进式增强两项 Fixed 修复了 git 配置解析与 shell 补全的健壮性问题源码层面可对照 util/gitutil 与 CLI 命令实现Experimental 的 MCP 工具暴露是后续Agent 调用 Dagger能力线的起点当前主干中的 internal/cmd/dagger/mcp.go 与 core/mcp.go、core/mcpserver.go 提供了完整演进证据使用该版本的读者注意变更日志仅描述该版本相对前序版本的行为差异ttl参数、--env-privileged等具体参数的最新形式建议以当前仓库对应源码与随版本发布的文档为准。赞分享DevOpsCI/CD后端CLI云原生【免费下载链接】daggerAutomation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud项目地址https://gitcode.com/GitHub_Trending/da/dagger点击查看免费下载相关推荐Dagger TypeScript SDK 的 DirectoryAsModuleSourceOptssourceRootPath 详解与模块源码加载实战Dagger TypeScript SDK 的 DirectoryAsModuleSourceOptssourceRootPath 详解与模块源码加载实战 本DevOpsCI/CD后端CLI云原生strands-agents Python SDK v1.12.0 版本解析工具模块化加载、MCP 嵌入式资源与模型层增强strands agents Python SDK v1.12.0 版本解析工具模块化加载、MCP 嵌入式资源与模型层增强 导读 本文围绕 strands a人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Dagger TypeScript SDK 的 CurrentModuleWorkdirOpts 详解模块工作目录加载与过滤选项Dagger TypeScript SDK 的 CurrentModuleWorkdirOpts 详解模块工作目录加载与过滤选项 本篇技术指南围绕 DaggeDevOpsCI/CD后端CLI云原生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

br-acc技术架构深度解析:从公开数据源到Neo4j、FastAPI与React的完整数据流

br-acc技术架构深度解析:从公开数据源到Neo4j、FastAPI与React的完整数据流

【免费下载链接】br-acc World Transparency Graph public codebase (🚧 website in progress) 项目地址: https://gitcode.com/gh_mirrors/br/br-acc 点击查看 免费下载 br-acc(World Transparency Graph)是一个开源的图数据库基…

2026/10/11 13:18:54 阅读更多 →
从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解

从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解

人工智能AI Agent桌面应用 【免费下载链接】Hermes-CN-Desktop Hermes Agent CN desktop app, Windows-First, built with Tauri, Typescript and Rust. Isolated Hermes Agent core insides. 项目地址: https://gitcode.com/gh_mirrors/he/Hermes-CN-Desktop 点击…

2026/10/11 13:17:54 阅读更多 →
AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表

AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表

给开发者一个工程化读法:市场部组织落地,本质是三张配置表——角色路由表(四个位置各归其人)、KPI 埋点表(CPCQ 三层指标)、预算分配表(四块分账)加上一个 90 天迭代周期。结论先说&…

2026/10/11 13:17:54 阅读更多 →

最新新闻

QT实现FTP上传下载工具:协议选型、核心类与避坑指南

QT实现FTP上传下载工具:协议选型、核心类与避坑指南

简介:一套基于Qt5框架、使用C语言编写的FTP客户端工具源码,面向需要在桌面或嵌入式Linux平台集成文件上传与下载功能的开发者。源码包共12个文件,其中4个cpp源文件与3个h头文件组成核心逻辑,pro工程文件和ui界面文件帮助快速构建项…

2026/10/11 14:08:19 阅读更多 →
多视角特征融合网络MFFN复现:伪装目标检测的细节与避坑指南

多视角特征融合网络MFFN复现:伪装目标检测的细节与避坑指南

简介:特征融合是提升视觉检测性能的核心手段之一。多视角特征融合通过模拟人类观察物体时的距离变化与角度切换,为网络提供互补的视觉线索,其原理在于利用视图生成与注意力机制结合,使模型在复杂背景下获得更稳健的边界响应。在多…

2026/10/11 14:08:19 阅读更多 →
快速上手 QualityMatters:一条命令从零构建高质量 Android 应用的入门教程

快速上手 QualityMatters:一条命令从零构建高质量 Android 应用的入门教程

【免费下载链接】qualitymatters Android Development Culture 项目地址: https://gitcode.com/gh_mirrors/qu/qualitymatters 点击查看 免费下载 QualityMatters 是一个遵循「Android 开发文化」原则的开源示例应用:它把单元测试、集成测试、功能测试、…

2026/10/11 14:08:19 阅读更多 →
SQL Server职工考勤管理信息系统:从课程设计到数据库实战

SQL Server职工考勤管理信息系统:从课程设计到数据库实战

简介:这份数据库课程设计文档面向计算机专业学生及需要完成课程设计的学习者,围绕职工考勤管理信息系统展开,帮助解决从需求分析到数据库落地的完整设计问题。资源包共1个doc文件,大小约316KB,内容以课程设计报告形式呈…

2026/10/11 14:08:19 阅读更多 →
神舟Hasee官方授权维修点查询:2026年10月全国联保地址电话与送修须知

神舟Hasee官方授权维修点查询:2026年10月全国联保地址电话与送修须知

神舟Hasee官方授权维修点查询:2026年10月全国联保地址电话与送修须知编号:SZSHFW-2026-1013摘要:性价比机型用户查找「神舟笔记本官方售后授权维修地址电话」时,希望全国联保网点稳定可查。本文基于 2026 年 10 月信息&#xff0c…

2026/10/11 14:08:19 阅读更多 →
伪装目标检测实战:多视角特征融合与注意力机制提升弱对比度识别

伪装目标检测实战:多视角特征融合与注意力机制提升弱对比度识别

简介:伪装目标检测旨在分割隐蔽于复杂环境中的目标,这份文档提出多视角特征融合网络(MFFN),面向计算机视觉研究者与相关应用开发者,用于解决单视图检测器对背景干扰敏感、边界模糊和形状多变时检测不准的问…

2026/10/11 14:07:19 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →