拓冰建站拓冰建站
首页 / 资讯中心 / 正文

搭建 Dapr 开发环境:从零开始配置 Dapr 源码构建与调试工具链

搭建 Dapr 开发环境从零开始配置 Dapr 源码构建与调试工具链【免费下载链接】daprDapr is a portable runtime for building distributed applications across cloud and edge, combining event-driven architecture with workflow orchestration.项目地址: https://gitcode.com/GitHub_Trending/da/dapr本指南以 Dapr 仓库的 docs/development/setup-dapr-development-env.md 为骨架完整讲解在本地Linux / macOS / Windows搭建 Dapr 源码开发环境所需的全部工具Git、Docker、Go 工具链、Make 以及 Kubernetes Helm。读完本文你将能够完成 Dapr 源码的克隆、编译、单元测试、lint 检查并为后续的本地调试与 Kubernetes 部署打好环境基础。环境总览构建 Dapr 需要哪些工具Dapr 是一个用 Go 编写的可移植分布式运行时仓库根目录的 go.mod 声明了go 1.26.6构建与测试动作全部由仓库根目录的 Makefile 统一编排。因此一套可用的开发环境至少需要以下四类工具工具版本要求用途Git最新稳定版克隆仓库、版本管理Windows 下构建脚本依赖 Git BASHDocker最新稳定版容器镜像构建、本地开发容器、集成测试Go1.26.6 或更高编译 daprd / placement / operator / injector / sentry / scheduler 等全部二进制Make平台对应版本执行make build、make test、make check等构建与检查动作Helm 3.x3.x可选但推荐在 Kubernetes 上部署开发版 DaprDelve / golangci-lintDelve可选golangci-lint 必须为 2.10.1调试 Go 程序执行仓库级 lint 检查下文按官方文档的章节顺序逐一展开并在每节补充仓库源码中的对应实现证据帮助你理解为什么需要这个工具以及装好之后它在哪里被用到。第一步安装 Git从 Git 官方渠道下载并安装 Git。在 Windows 上Dapr 的构建环境依赖随 Git for Windows 一起分发的 Git BASH——Makefile 中的 shell 逻辑、make check里的git status检查等动作都需要在 Git BASH 中运行而不是普通的 cmd / PowerShell。安装时需要确保Git 和 Unix 工具都加入PATH环境变量并且编辑器体验与 Windows Terminal 集成。例如使用 Chocolatey 安装时可以显式指定choco install git -y --package-parameters/GitAndUnixToolsOnPath /WindowsTerminal安装完成后在终端中验证git --version第二步配置 Docker 环境Dapr 的镜像构建如make docker-build、开发容器见下文以及大量 e2e / 集成测试都依赖 Docker安装 Docker 官方版本。Linux 用户特别提醒Dapr 的构建脚本要求 Docker 无需sudo即可运行。请按照 Docker 官方manage Docker as a non-root user的指引把当前用户加入docker用户组并重新登录使配置生效。这也是 Makefile 中check-docker-env等目标能顺利执行的前提。注册一个Docker Hub 账号。后续在 developing-dapr.md 中部署开发版 Dapr 到 Kubernetes 时需要把DAPR_REGISTRY设置为docker.io/你的Docker Hub账号用于推送和拉取自建镜像。验证 Docker 是否可用docker version docker ps # 无需 sudo 即成功说明非 root 配置正确第三步安装 Go 工具链下载并安装Go 1.26.6 或更高版本。这一版本要求与仓库根目录 go.mod 第一行声明的go 1.26.6严格对应也是 Makefile 中modtidy-*目标执行go mod tidy -compat1.26.6所使用的兼容版本。验证安装go version可选安装Delve用于 Go 程序调试。Dapr 官方推荐使用 VS Code 搭配 Go 扩展进行开发调试也可以直接用 Delve 命令行工具具体调试方法见 developing-dapr.md 的 Debug Dapr 章节。安装golangci-lint版本必须是 2.10.1。这一点在 Makefile 中有明确注释# Please use golangci-lint version v2.10.1 , otherwise you might encounter errors.仓库的lint目标会以allcomponents,subtlecrpto作为构建标签执行 lint对应 Makefile 中的GOLANGCI_LINT_TAGSmake lint如果本地 golangci-lint 版本不对make check/make lint会报错因此务必锁定 2.10.1。第四步安装 MakeDapr 用make统一编排构建、测试、lint、镜像、部署等动作Makefile 中共定义了 600 余行目标因此 Make 是必需品。不同平台安装方式如下Linux安装build-essential软件包其中包含make与gcc等编译工具sudo apt-get install build-essentialmacOS安装命令行开发者工具xcode-select --install完成后make及其他命令行开发工具会出现在/usr/bin下直接验证即可which make /usr/bin/make --versionWindows通过 Chocolatey 安装 MinGW 与 makechoco install mingw choco install make注意Windows 上所有make命令必须在Git BASH中运行见 developing-dapr.md 的说明并且通常需要为mingw32-make.exe创建名为make的别名否则 Makefile 中的命令无法解析。第五步搭建 Kubernetes 开发环境可选但推荐Dapr 的控制平面operator、placement、sidecar-injector、sentry、scheduler 等与 Sidecar 注入机制都面向 Kubernetes 设计如果你想在本地验证对控制平面的改动需要按照 Dapr 官方文档搭建一个可用的 Kubernetes 集群常见的本地方案包括 Minikube、Kind、K3s 等仓库的 tests/config/kind.yaml 提供了一份 Kind 集群配置示例。为开发目的强烈建议额外安装 Helm 3.x。仓库 Makefile 中manifest-gen、docker-deploy-k8s等目标都直接调用helmmanifest-gen通过helm template生成部署清单到./dist/install/dapr.yamldocker-deploy-k8s通过helm upgrade --install将开发版 Dapr 部署到当前 K8s 上下文涉及DAPR_REGISTRY、DAPR_TAG、HA_MODE等环境变量。安装后验证helm version后续把修改部署到集群的完整流程设置DAPR_REGISTRY/DAPR_TAG、make build-linux、make docker-build、make docker-deploy-k8s、kubectl get pod -n dapr-system验证在 developing-dapr.md 中有逐步说明可作为本指南的下一站阅读材料。第六步快速验证环境是否就绪工具全部装好后可以用仓库自带的一键命令验证整条工具链make check这个目标在 Makefile 中的定义是check: format test lint git status [[ -z git status -s ]]它会依次执行format先对所有go.mod执行go mod tidy再用gofumpt与goimports统一代码格式test通过gotestsum运行./pkg/... ./utils/... ./cmd/...的全部单元测试构建标签为unit,allcomponents并运行./tests/...下的测试lint用 golangci-lint 2.10.1 以allcomponents,subtlecrpto标签执行静态检查最后检查git status确认没有遗漏提交的文件。如果你只想快速编译全部二进制可以在仓库根目录执行make build构建产物会输出到./dist/{os}_{arch}/release/。需要指出的是Makefile 默认同时构建daprd placement operator injector sentry scheduler六个二进制对应BINARIES变量并且默认使用allcomponents构建标签——该标签决定 daprd 边车内置哪些组件另一选项是stablecomponents只包含稳定版组件。这一机制在你后续用调试器启动 daprd 时也会用到详见 developing-dapr.md。进阶不想手动装工具使用官方开发容器如果觉得逐一手动安装比较繁琐仓库还提供了两条开箱即用的替代路径两者都复用同一套开发环境定义VS Code 开发容器 / GitHub Codespaces仓库根目录的 .devcontainer/devcontainer.json 定义了完整的 Dapr 开发容器基于官方 dapr-dev 镜像预装了 Go、Delve、golangci-lint、Docker-in-Docker、Kubernetes / Helm / Minikube 以及 VS Code 扩展Go、Dapr、Docker、Kubernetes 工具等。具体使用与自定义方法见 setup-dapr-development-using-vscode.md。手动安装即本文所讲的完整流程适用于需要完全掌控本机环境的场景。使用开发容器时仓库 docker/Dockerfile-dev 是镜像的定义文件如果你需要自定义镜像例如在 Linux 主机上把容器内dapr用户的 UID 重映射为与宿主机一致可以修改该文件并在devcontainer.json中用dockerFile属性替换image属性后重新构建。常见问题与排查make命令找不到 / 无法解析Windows确认是在 Git BASH 中运行且已为mingw32-make.exe配置了make别名Git 与 Unix 工具已在PATH中。docker: permission deniedLinux说明还没有完成非 root 用户配置请重新执行 Docker 官方 post-install 步骤并把用户加入docker组后重新登录。make check在 lint 阶段报错多半是 golangci-lint 版本不是 2.10.1Makefile 已明确要求该版本请升级或降级后重试。go: cannot find GOROOT之类错误确认go version输出正常PATH中包含 Go 的bin目录。本地无法部署到 K8s先确认kubectl上下文指向正确的集群DAPR_REGISTRY/DAPR_TAG已按 developing-dapr.md 设置并且已完成docker login。至此一套完整的 Dapr 源码开发环境已经就绪。下一步推荐阅读仓库内的 developing-dapr.md构建二进制、单元测试、调试、Kubernetes 部署的完整流程与 setup-dapr-development-using-vscode.md开发容器使用与自定义把环境真正用起来。【免费下载链接】daprDapr is a portable runtime for building distributed applications across cloud and edge, combining event-driven architecture with workflow orchestration.项目地址: https://gitcode.com/GitHub_Trending/da/dapr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门