You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何skaffold build中的cargo build比docker build耗时久得多?

Skaffold构建Rust微服务耗时异常排查问题

我们基于Rust开发后端服务,在minikube环境中调试,采用单个Dockerfile构建整个工作区,通过不同的cargo run命令部署不同微服务。目前遇到构建耗时差异极大的问题:

构建耗时对比

  • 直接执行docker build时,cargo build步骤构建二进制文件约耗时3分钟:
=> [10/10] RUN  cargo fetch --locked && cargo build --offline --frozen --timings --verbose                                                          186.3s 
 => exporting to image                                                                                                                               134.2s 
  • 执行skaffold build时,cargo build步骤构建二进制文件约耗时20分钟,额外耗时集中在链接阶段:在104秒后显示最后一条警告,之后直到构建完成耗时超18分钟,日志如下:
#14 104.5     = note: `#[warn(dead_code)]` on by default
#14 104.5 
#14 1192.5 warning: `xx` (bin "xx") generated 9 warnings (run `cargo fix --bin "xx"` to apply 7 suggestions)
#14 1223.4       Timing report saved to /home/app/target/cargo-timings/cargo-timing-20240531T162451Z.html
#14 1223.4     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19m 52s
#14 DONE 1256.5s

已尝试的优化措施

  • 为排除网络影响,Dockerfile中先执行cargo fetch拉取依赖,再执行cargo run --offline构建;
  • 在skaffold.yaml中配置启用Buildkit:
build:
  local:
    useBuildkit: true
    concurrency: 0
  • 在Cargo.toml的dev编译配置中禁用LTO:
[profile.dev]
lto = "off"

目前skaffold dev因构建耗时过长无法正常使用,请问可能的原因是什么?

内容的提问来源于stack exchange,提问作者kdopen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:43:19