From 63079ed18782af721c749ef70a9dfa82ba9fc6fd Mon Sep 17 00:00:00 2001 From: Snider Date: Sat, 31 Jan 2026 22:58:09 +0000 Subject: [PATCH] feat: add developer container config with packages/ mount - docker-compose.yml for standalone Docker usage - .devcontainer/devcontainer.json for VS Code/Cursor - Mounts packages/ as /workspace in container - Persists home directory with named volume - SSH and gitconfig mounted read-only Uses ghcr.io/host-uk/core-images/developer:latest Co-Authored-By: Claude Opus 4.5 --- .devcontainer/devcontainer.json | 33 +++++++++++++++++++++++++++++++++ docker-compose.yml | 29 +++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 docker-compose.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8d6fec2 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +{ + "name": "Core Developer", + "image": "ghcr.io/host-uk/core-images/developer:latest", + + "workspaceMount": "source=${localWorkspaceFolder}/packages,target=/workspace,type=bind", + "workspaceFolder": "/workspace", + + "mounts": [ + "source=${localEnv:HOME}/.ssh,target=/root/.ssh,type=bind,readonly", + "source=${localEnv:HOME}/.gitconfig,target=/root/.gitconfig,type=bind,readonly", + "source=core-dev-home,target=/root,type=volume" + ], + + "containerEnv": { + "TERM": "xterm-256color", + "EDITOR": "nvim" + }, + + "customizations": { + "vscode": { + "extensions": [ + "bmewburn.vscode-intelephense-client", + "golang.go", + "ms-python.python", + "rust-lang.rust-analyzer" + ] + } + }, + + "postCreateCommand": "echo 'Core Developer ready. Workspace: /workspace (packages/)'", + + "remoteUser": "root" +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c8d2392 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +# Core Developer Environment +# Mounts packages/ as /workspace in the container + +services: + dev: + image: ghcr.io/host-uk/core-images/developer:latest + container_name: core-dev + hostname: core-dev + stdin_open: true + tty: true + volumes: + # Mount packages directory as workspace + - ./packages:/workspace + # Persist home directory configs + - dev-home:/root + # SSH keys for git operations + - ~/.ssh:/root/.ssh:ro + # Git config + - ~/.gitconfig:/root/.gitconfig:ro + environment: + - TERM=xterm-256color + - EDITOR=nvim + working_dir: /workspace + # Keep container running + command: ["/bin/zsh"] + +volumes: + dev-home: + name: core-dev-home