From 2c323825b0865a1999ec08be3f16d62cc3818e26 Mon Sep 17 00:00:00 2001 From: "Xinwei Xiong (cubxxw)" <3293172751nss@gmail.com> Date: Wed, 10 Jan 2024 14:56:38 +0800 Subject: [PATCH] feat: add devcontainer.json file Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> --- .devcontainer /devcontainer.json | 79 ++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .devcontainer /devcontainer.json diff --git a/.devcontainer /devcontainer.json b/.devcontainer /devcontainer.json new file mode 100644 index 000000000..093f85169 --- /dev/null +++ b/.devcontainer /devcontainer.json @@ -0,0 +1,79 @@ +{ + // Reference Doc: https://code.visualstudio.com/remote/advancedcontainers/overview + "name": "OpenIM Dev Environment", + // Update the container version when you publish dev-container + "dockerComposeFile": "docker-compose.yml", + "build": { "dockerfile": "Dockerfile" }, + // 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" + }, + "remoteEnv": { + "GO111MODULE": "on", + "GOPROXY": "https://goproxy.cn", + "GOSUMDB": "sum.golang.org", + "GONOPROXY": "github.com/openimsdk", + "GONOSUMDB": "github.com/openimsdk", + "GOPRIVATE": "github.com/openimsdk" + }, + "extensions": [ + "davidanson.vscode-markdownlint", + "golang.go", + "ms-azuretools.vscode-dapr", + "ms-azuretools.vscode-docker", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ], + "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", + + // Bind mount docker socket under an alias to support docker-from-docker + // "type=bind,source=${env:HOME}${env:USERPROFILE}/.minikube/cache,target=/home/openim/.minikube/cache", + + // Uncomment to clone local .kube/config into devcontainer + "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/home/openim/.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/openim/.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": "openimsdk", + "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" + ], + "settings": { + "go.toolsManagement.checkForUpdates": "local", + "go.useLanguageServer": true, + "go.gopath": "/go" + }, + "workspaceFolder": "/workspaces/openim", + "workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/workspaces/openim" +} \ No newline at end of file