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

Dockerfile执行dlv报错:exec /dlv: no such file or directory 求助

问题原因

你遇到的exec /dlv: no such file or directory错误,本质是C库不兼容:

  • 构建阶段用的golang:1.18-alpine基于musl libc,编译出的dlv二进制依赖这个轻量C库
  • 最终运行镜像debian:buster-slim用的是glibc,系统无法找到musl的依赖,导致明明文件存在却无法执行
修复方案

方案1:编译静态链接的dlv(推荐)

在builder阶段编译dlv时,强制生成不依赖系统C库的静态二进制,这样跨镜像也能运行:
修改builder里的dlv安装命令,加上CGO_ENABLED=0:

FROM golang:1.18-alpine AS builder

# 编译静态链接的Delve
RUN CGO_ENABLED=0 go install github.com/go-delve/delve/cmd/dlv@latest

# 后续构建步骤不变...

方案2:改用同C库的builder镜像

把builder阶段的镜像换成debian-based的Go镜像,确保编译的dlv依赖glibc,和最终镜像兼容:

FROM golang:1.18-buster AS builder

# 构建Delve
RUN go install github.com/go-delve/delve/cmd/dlv@latest

# 后续构建步骤不变...
额外修复点

你注释掉了fooapp的复制命令,导致/app/fooapp不存在,必须把这行恢复:

COPY --from=builder /app/fooapp /app/fooapp

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:40:40