From c4aefec0a765e74ec27f1ecebd0ce7bcba6f23fc Mon Sep 17 00:00:00 2001 From: twsl <45483159+twsl@users.noreply.github.com> Date: Mon, 20 Sep 2021 18:42:30 +0200 Subject: [PATCH] VS Code Devcontainers (#956) --- .devcontainer/devcontainer.json | 54 ++++++++++++++++++++++++++++++++ .devcontainer/docker-compose.yml | 37 ++++++++++++++++++++++ Dockerfile | 2 +- docker-compose.yml | 6 ++-- 4 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000000..81e6ae0788ee --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,54 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.166.1/containers/docker-existing-docker-compose +// If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml. +{ + "name": "Existing Docker Compose (Extend)", + // Update the 'dockerComposeFile' list if you have more compose files or use different names. + // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make. + "dockerComposeFile": [ + "../docker-compose.yml", + "docker-compose.yml" + ], + // The 'service' property is the name of the service for the container that VS Code should + // use. Update this value and .devcontainer/docker-compose.yml to the real service name. + "service": "app", + "runServices": [ + "db", + "app", + ], + // The optional 'workspaceFolder' property is the path VS Code should open by default when + // connected. This is typically a file mount in .devcontainer/docker-compose.yml + "workspaceFolder": "/workspace", + // Set *default* container specific settings.json values on container create. + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "python.defaultInterpreterPath": "/usr/bin/python3", + "python.pythonPath": "/usr/bin/python3", + "files.eol": "\n", + "editor.formatOnSave": true, + }, + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance", + "visualstudioexptteam.vscodeintellicode", + "littlefoxteam.vscode-python-test-adapter", + "kevinrose.vsc-python-indent", + "shardulm94.trailing-spaces", + "redhat.vscode-yaml", + "oderwat.indent-rainbow", + "medo64.render-crlf", + "ms-azuretools.vscode-docker", + "ms-vscode-remote.vscode-remote-extensionpack", + ], + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + // Uncomment the next line if you want start specific services in your Docker Compose config. + // "runServices": [], + // Uncomment the next line if you want to keep your containers running after VS Code shuts down. + // "shutdownAction": "none", + // Uncomment the next line to run commands after the container is created - for example installing curl. + //"postCreateCommand": "", + // Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root. + // "remoteUser": "vscode" +} \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 000000000000..69d42c3ca2d5 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.3" +services: + # Update this to the name of the service you want to work with in your docker-compose.yml file + app: + # If you want add a non-root user to your Dockerfile, you can use the "remoteUser" + # property in devcontainer.json to cause VS Code its sub-processes (terminals, tasks, + # debugging) to execute as the user. Uncomment the next line if you want the entire + # container to run as this user instead. Note that, on Linux, you may need to + # ensure the UID and GID of the container user you create matches your local user. + # See https://aka.ms/vscode-remote/containers/non-root for details. + # + # user: vscode + + # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer + # folder. Note that the path of the Dockerfile and context is relative to the *primary* + # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile" + # array). The sample below assumes your primary file is in the root of your project. + # + # build: + # context: . + # dockerfile: .devcontainer/Dockerfile + + volumes: + # Update this to wherever you want VS Code to mount the folder of your project + - .:/workspace:cached + + # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details. + # - /var/run/docker.sock:/var/run/docker.sock + + # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust. + # cap_add: + # - SYS_PTRACE + # security_opt: + # - seccomp:unconfined + + # Overrides default command so things don't shut down after the process ends. + command: /bin/sh -c "while sleep 1000; do :; done" diff --git a/Dockerfile b/Dockerfile index f6a8f09bb00d..4618ec85af0f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,4 +26,4 @@ EXPOSE 8080 RUN ./deploy/prebuild_wo_frontend.sh ENTRYPOINT ["./deploy/docker-entrypoint.sh"] -CMD ["label-studio"] +CMD ["label-studio"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e23bde5f3331..cce8369b8846 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3.3' +version: "3.3" services: - nginx: image: nginx:latest ports: @@ -55,6 +54,5 @@ services: volumes: - ${POSTGRES_DATA_DIR:-./postgres-data}:/var/lib/postgresql/data - volumes: - static: {} + static: {}