
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是基于 chainguard/static 的极简容器镜像,内置 dlv(Delve)CLI 工具。dlv 是 Go 语言官方推荐的调试器,支持断点调试、变量监视、调用栈分析等功能。本镜像旨在提供轻量、安全、开箱即用的 Go 程序调试环境,适用于开发、测试及容器化场景下的 Go 应用调试。
dlv CLI 工具,支持 Go 程序的本地调试、远程调试及核心调试能力(断点、变量查看、调用栈追踪等)。chainguard/static 静态基础镜像,可直接运行于各类容器环境(无需额外依赖动态链接库)。chainguard/static 构建,镜像体积极小(通常 < 20MB),减少资源占用。chainguard 系列镜像的安全特性,包含最小化***面、非 root 用户运行(默认)、镜像签名验证等安全加固。dlv,拉取镜像后可直接执行调试命令。amd64、arm64 等主流架构(具体依赖 chainguard/static 基础镜像的平台支持)。dlv,调试本地 Go 项目(无需在宿主机安装 dlv)。dlv 执行调试相关的自动化步骤(如条件断点验证、异常场景复现)。从容器仓库拉取镜像(以 Docker Hub 为例,实际仓库需替换为镜像源地址):
bashdocker pull <镜像仓库地址>/dlv-static:latest
1. 验证 dlv 版本
运行容器并执行 dlv version 命令,验证工具可用性:
bashdocker run --rm <镜像仓库地址>/dlv-static:latest dlv version
输出示例:
Delve Debugger Version: 1.21.0 Build: $Id: xxxxxxxxxx $
2. 调试本地 Go 程序
将本地 Go 项目代码挂载到容器内,使用 dlv debug 启动调试会话:
bash# 假设本地 Go 项目路径为 ./my-go-app,入口文件为 main.go docker run --rm -v $(pwd)/my-go-app:/app -w /app <镜像仓库地址>/dlv-static:latest dlv debug main.go
此时容器内会启动 dlv 交互式调试会话,支持设置断点(b main.main)、运行(c)、下一步(n)等标准调试命令。
3. 远程调试容器内 Go 程序
如需通过宿主机 IDE(如 VS Code、Goland)远程连接容器内的 dlv 调试会话,需配置 dlv 以无头模式(headless)运行并暴露调试端口:
bash# 启动容器,暴露调试端口 2345,挂载项目代码并启动 headless 调试 docker run --rm -p 2345:2345 -v $(pwd)/my-go-app:/app -w /app <镜像仓库地址>/dlv-static:latest \ dlv debug main.go --headless --listen=0.0.0.0:2345 --api-version=2 --accept-multiclient
宿主机 IDE 可通过 localhost:2345 连接调试会话,实现远程断点调试。
通过 docker-compose.yml 定义调试环境,简化多容器或复杂挂载场景的配置:
yamlversion: '3.8' services: dlv-debug: image: <镜像仓库地址>/dlv-static:latest volumes: - ./my-go-app:/app # 挂载本地 Go 项目代码 working_dir: /app ports: - "2345:2345" # 暴露调试端口 command: ["dlv", "debug", "main.go", "--headless", "--listen=0.0.0.0:2345", "--api-version=2"]
启动调试环境:
bashdocker-compose up
dlv 工具支持丰富的命令参数,常用参数如下(使用时需追加到容器启动命令中):
| 参数 | 说明 |
|---|---|
debug <file> | 编译并调试指定 Go 文件(默认入口为 main.go) |
--headless | 以无头模式运行(无交互式终端,适合远程连接) |
--listen=<addr> | 指定调试服务监听地址(如 0.0.0.0:2345,允许外部连接) |
--api-version=<n> | 指定调试 API 版本(通常设为 2,兼容主流 IDE) |
--accept-multiclient | 允许多个客户端同时连接调试会话(如 IDE 和命令行同时调试) |
--log | 输出调试日志(用于排查连接问题) |
chmod 调整宿主机目录权限或添加 --user root 参数(仅调试场景使用,生产环境避免)。--listen=0.0.0.0:2345 会暴露端口到公网,建议通过防火墙限制访问,或仅在可信环境中使用。dlv 版本需与目标 Go 程序的编译版本匹配(如 Go 1.21 需 dlv 1.21+),建议使用镜像标签指定版本(如 dlv-static:1.21)而非 latest。dlv 与目标进程在同一网络命名空间(可通过 --net=container:<target-container> 共享网络)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务