{ "name": "Dapr Dev Environment", // Update the container version when you publish dev-container "image": "ghcr.io/dapr/dapr-dev:latest", // Replace with uncommented line below to build your own local copy of the image //"dockerFile": "../docker/Dockerfile-dev", "containerEnv": { // Uncomment to overwrite devcontainer .kube/config and .minikube certs with the localhost versions // each time the devcontainer starts, if the respective .kube-localhost/config and .minikube-localhost // folders respectively are bind mounted to the devcontainer. // "SYNC_LOCALHOST_KUBECONFIG": "true", // Uncomment to disable docker-in-docker and automatically proxy default /var/run/docker.sock to // the localhost bind-mount /var/run/docker-host.sock. // "BIND_LOCALHOST_DOCKER": "true", // Necessary for components-contrib's certification tests "GOLANG_PROTOBUF_REGISTRATION_CONFLICT": "ignore" }, "features": { "ghcr.io/devcontainers/features/sshd:1": {}, "ghcr.io/devcontainers/features/github-cli:1": {}, "ghcr.io/devcontainers/features/azure-cli:1": {} }, "mounts": [ // Mount docker-in-docker library volume "type=volume,source=dind-var-lib-docker,target=/var/lib/docker", // Bind mount docker socket under an alias to support docker-from-docker "type=bind,source=/var/run/docker.sock,target=/var/run/docker-host.sock" // Uncomment to clone local .kube/config into devcontainer // "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/home/dapr/.kube-localhost", // Uncomment to additionally clone minikube certs into devcontainer for use with .kube/config // "type=bind,source=${env:HOME}${env:USERPROFILE}/.minikube,target=/home/dapr/.minikube-localhost" ], // Always run image-defined default command "overrideCommand": false, // On Linux, this will prevent new files getting created as root, but you // may need to update the USER_UID and USER_GID in docker/Dockerfile-dev // to match your user if not 1000. "remoteUser": "dapr", "runArgs": [ // Enable ptrace-based debugging for go "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", // Uncomment to bind to host network for local devcontainer; this is necessary if using the // bind-mounted /var/run/docker-host.sock directly. // "--net=host", // Enable docker-in-docker configuration. Comment out if not using for better security. "--privileged", // Run the entrypoint defined in container image. "--init" ], "customizations": { "vscode": { "extensions": [ "davidanson.vscode-markdownlint", "golang.go", "ms-azuretools.vscode-dapr", "ms-azuretools.vscode-docker", "ms-kubernetes-tools.vscode-kubernetes-tools" ], "settings": { "go.toolsManagement.checkForUpdates": "local", "go.useLanguageServer": true, "go.gopath": "/go", "go.buildTags": "e2e,perf,conftests,unit,integration_test,certtests,allcomponents", "git.alwaysSignOff": true, "terminal.integrated.env.linux": { "GOLANG_PROTOBUF_REGISTRATION_CONFLICT": "ignore" } } } }, "workspaceFolder": "/workspaces/dapr", "workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/workspaces/dapr" }