From 6e8edc2ca0bb8d3bbe3dbe44fea35fe6e1d28d1d Mon Sep 17 00:00:00 2001 From: Timothy Hofland Date: Sun, 7 Jun 2026 21:48:59 +0200 Subject: [PATCH] Add Dockerfile and devcontainer.json for development environment setup --- .devcontainer/Dockerfile | 28 ++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..55db1e3 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,28 @@ +FROM debian:bookworm-slim + +# Install core Linux development utilities +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + git \ + ssh-client \ + ca-certificates \ + sudo \ + gnupg \ + procps \ + unzip \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user 'vscode' with sudo privileges +ARG USERNAME=vscode +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +RUN groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + && echo $USERNAME ALL=\(ALL\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME + +# Set the default user to the non-root user +USER $USERNAME +ENV HOME=/home/vscode \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..bd3b7b6 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,23 @@ +{ + "name": "Generic Linux Dev Environment", + "build": { + "dockerfile": "Dockerfile" + }, + "remoteUser": "vscode", + "updateRemoteUserUID": true, + + "workspaceMount": "source=pi-hole-dev-vol,target=/workspace,type=volume", + "workspaceFolder": "/workspace", + + "customizations": { + "vscode": { + "extensions": [ + "vscode.git-base", + "vscode.git", + "mhutchie.git-graph", + "eamodio.gitlens" + ] + } + }, + "overrideCommand": true +} \ No newline at end of file