Visual Studio Code 的 开发容器扩展允许您使用一个自包含的 Docker 容器作为完整的开发环境,而无需在本地文件系统中安装任何额外的软件包、库或工具。
Dapr 提供了预构建的 C# 和 JavaScript/TypeScript 开发容器,您可以选择其中一个来快速搭建开发环境。请注意,这些预构建的容器会自动更新到 Dapr 的最新版本。
我们还发布了一个开发容器功能,可以在任何开发容器中安装 Dapr CLI。
您可以使用 开发容器功能 在任何开发容器中安装 Dapr CLI。
为此,请编辑您的 devcontainer.json
文件,并在 "features"
部分添加以下两个对象:
"features": {
// 安装 Dapr CLI
"ghcr.io/dapr/cli/dapr-cli:0": {},
// 启用 Docker(通过 Docker-in-Docker)
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
// 或者,使用 Docker-outside-of-Docker(使用主机中的 Docker)
//"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
}
保存 JSON 文件并重新构建托管您开发环境的容器后,您将拥有 Dapr CLI(和 Docker),并可以通过在容器中运行以下命令来安装 Dapr:
dapr init
以下是一个用于开发 Dapr Java 应用的开发容器示例,基于 官方 Java 17 开发容器镜像。
将其放置在项目中的 .devcontainer/devcontainer.json
文件中:
// 有关格式详细信息,请参阅 https://aka.ms/devcontainer.json。有关配置选项,请参阅
// README:https://github.com/devcontainers/templates/tree/main/src/java
{
"name": "Java",
// 或者使用 Dockerfile 或 Docker Compose 文件。更多信息:https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/java:0-17",
"features": {
"ghcr.io/devcontainers/features/java:1": {
"version": "none",
"installMaven": "false",
"installGradle": "false"
},
// 安装 Dapr CLI
"ghcr.io/dapr/cli/dapr-cli:0": {},
// 启用 Docker(通过 Docker-in-Docker)
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
// 或者,使用 Docker-outside-of-Docker(使用主机中的 Docker)
//"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
}
// 使用 'forwardPorts' 在本地提供容器内的端口列表。
// "forwardPorts": [],
// 使用 'postCreateCommand' 在创建容器后运行命令。
// "postCreateCommand": "java -version",
// 配置工具特定的属性。
// "customizations": {},
// 取消注释以改为以 root 身份连接。更多信息:https://aka.ms/dev-containers-non-root。
// "remoteUser": "root"
}
然后,使用 VS Code 命令面板(在 Windows 上为 CTRL + SHIFT + P
或在 Mac 上为 CMD + SHIFT + P
),选择 Dev Containers: Rebuild and Reopen in Container
。
CTRL + SHIFT + P
或在 Mac 上为 CMD + SHIFT + P
)输入并选择 Dev Containers: Add Development Container Configuration Files...
dapr
以过滤可用的 Dapr 远程容器列表,并选择与您的应用匹配的语言容器。请注意,您可能需要选择 Show All Definitions...
观看此 视频 了解如何在您的应用中使用 Dapr 开发容器。