From 70fc374d0d4020084494892ee51ac4cec722ec86 Mon Sep 17 00:00:00 2001 From: Dariusz Niemczyk Date: Thu, 1 Feb 2024 01:16:06 +0100 Subject: [PATCH] feat: add proper devcontainer support --- .devcontainer/devcontainer.json | 46 +++++++++++++++++++------------- .devcontainer/docker-compose.yml | 18 +------------ 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c9bf73f..6fcd7bb 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,41 +1,49 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-docker-compose { - "name": "Existing Docker Compose (Extend)", - + "name": "Extend base docker-compose for development purposes", // 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"], - + "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": "web", - // 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": "/workspaces/${localWorkspaceFolderBasename}", "features": { - "ghcr.io/wxw-matt/devcontainer-features/script_runner:0": {} - } - + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/sshd:1": {} + }, // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, - // 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. - // "postCreateCommand": "cat /etc/os-release", - - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "devcontainer" + "postStartCommand": "${containerWorkspaceFolder}/manage.py migrate", + "postCreateCommand": "${containerWorkspaceFolder}/manage.py collectstatic --no-input --clear", + "customizations": { + "vscode": { + "settings": { + "extensions.verifySignature": false + }, + "extensions": [ + "ms-python.python", + "mikestead.dotenv", + "VisualStudioExptTeam.vscodeintellicode", + "ms-python.black-formatter", + "VisualStudioExptTeam.intellicode-api-usage-examples", + "ms-azuretools.vscode-docker", + "DavidAnson.vscode-markdownlint", + "yzhang.markdown-all-in-one" + ] + } + } } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 06b3c51..e172b4f 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,25 +1,9 @@ version: "3" services: - # Update this to the name of the service you want to work with in your docker-compose.yml file web: - # 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 - ..:/workspaces:cached - - # 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 + restart: unless-stopped # Overrides default command so things don't shut down after the process ends. command: /bin/sh -c "while sleep 1000; do :; done"