使用 Dev Containers 开发 Dapr 应用程序

如何使用 Dapr 设置一个带有容器化开发环境

Visual Studio Code Dev Containers extension 可让您使用一个自包含的 Docker 容器作为完整的开发环境,而无需在本地文件系统中安装任何其他软件包、库或工具。

Dapr 已经为 C# 和 JavaScript/TypeScript 构建了预置的容器;您可以选择其中一个,以获得一个现成的环境。 注意这些预制容器自动更新到最新的 Dapr 版本。

我们还发布了一个开发容器功能,可以在任何开发容器中安装 Dapr CLI。

设置开发环境

前期准备

使用 Dev Container 功能添加 Dapr CLI

您可以使用Dev Container功能在任何Dev容器中安装Dapr CLI。

要做到这一点,编辑您的devcontainer.json文件,并在”features”部分中添加两个对象:

  1. "features": {
  2. // Install the Dapr CLI
  3. "ghcr.io/dapr/cli/dapr-cli:0": {},
  4. // Enable Docker (via Docker-in-Docker)
  5. "ghcr.io/devcontainers/features/docker-in-docker:2": {},
  6. // Alternatively, use Docker-outside-of-Docker (uses Docker in the host)
  7. //"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
  8. }

保存 JSON 文件并(重新)构建托管开发环境的容器后,您将拥有可用的 Dapr CLI(和 Docker),并且可以通过在容器中运行以下命令来安装 Dapr:

  1. dapr init

示例:为 Dapr 创建 Java 开发容器

这是一个示例,用于创建一个基于官方 Java 17 Dev Container 镜像的使用Dapr的Java应用程序的开发容器。

将此内容放入您的项目中的文件.devcontainer/devcontainer.json中:

  1. // For format details, see https://aka.ms/devcontainer.json. For config options, see the
  2. // README at: https://github.com/devcontainers/templates/tree/main/src/java
  3. {
  4. "name": "Java",
  5. // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
  6. "image": "mcr.microsoft.com/devcontainers/java:0-17",
  7. "features": {
  8. "ghcr.io/devcontainers/features/java:1": {
  9. "version": "none",
  10. "installMaven": "false",
  11. "installGradle": "false"
  12. },
  13. // Install the Dapr CLI
  14. "ghcr.io/dapr/cli/dapr-cli:0": {},
  15. // Enable Docker (via Docker-in-Docker)
  16. "ghcr.io/devcontainers/features/docker-in-docker:2": {},
  17. // Alternatively, use Docker-outside-of-Docker (uses Docker in the host)
  18. //"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
  19. }
  20. // Use 'forwardPorts' to make a list of ports inside the container available locally.
  21. // "forwardPorts": [],
  22. // Use 'postCreateCommand' to run commands after the container is created.
  23. // "postCreateCommand": "java -version",
  24. // Configure tool-specific properties.
  25. // "customizations": {},
  26. // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
  27. // "remoteUser": "root"
  28. }

然后,使用VS Code命令面板(CTRL + SHIFT + P或Mac上的CMD + SHIFT + P),选择Dev Containers: Rebuild and Reopen in Container

使用预构建的开发容器(C# 和 JavaScript/TypeScript)

  1. 在 VS 代码中打开您的应用程序工作区(workspace)
  2. 在命令命令面板 (CTRL + SHIFT + P 或者在 Mac 上是 CMD + SHIFT + P) 中输入并选择 Dev Containers: Add Development Container Configuration Files...
    添加远程容器的截图
  3. 输入 dapr 来过滤列表到可用的 Dapr 远程容器,并选择符合您应用程序的语言容器。 请注意,您可能需要选择“显示所有定义…”
    添加 Dapr 容器的屏幕截图
  4. 按照提示在容器中重新打开您的工作区。
    重新打开开发容器中的应用程序的截图

如何使用Dapr扩展来开发和运行Dapr应用程序

观看这个视频,了解如何在您的应用程序中使用Dapr Dev Containers。