From 0817d7be67dc99e13dec0b48d5849c412d780eb4 Mon Sep 17 00:00:00 2001 From: arjan Date: Wed, 20 May 2026 12:38:14 +0200 Subject: [PATCH] basics working, being rebuild and reopen remote --- .devcontainer/Containerfile | 45 +++++++++++++++++++++++++++++++++ .devcontainer/compose.yml | 23 +++++++++++++++++ .devcontainer/devcontainer.json | 34 +++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 .devcontainer/Containerfile create mode 100644 .devcontainer/compose.yml create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Containerfile b/.devcontainer/Containerfile new file mode 100644 index 000000000..f0d33e7f4 --- /dev/null +++ b/.devcontainer/Containerfile @@ -0,0 +1,45 @@ +# Dockerfile +# podman image build -q -t debian:podman-trixie -f Containerfile . +# podman run -q -it --rm --device /dev/fuse debian:podman-trixie + # in development container e.g. +FROM debian:trixie + +ENV DEBIAN_FRONTEND="noninteractive" + +RUN apt-get update && \ + apt-get install -y --no-install-recommends podman podman-compose \ + fuse-overlayfs slirp4netns uidmap iptables aardvark-dns nftables ca-certificates sudo \ + git && \ + apt-get upgrade -y + +RUN useradd vscode -s /bin/bash && \ + echo "vscode:1001:64535" > /etc/subuid && \ + echo "vscode:1001:64535" > /etc/subgid + +ARG _REPO_URL="https://raw.githubusercontent.com/containers/image_build/refs/heads/main/podman" +ADD $_REPO_URL/containers.conf /etc/containers/containers.conf +ADD $_REPO_URL/podman-containers.conf /home/vscode/.config/containers/containers.conf + +RUN mkdir -p /home/vscode/.local/share/containers && \ + chown vscode:vscode -R /home/vscode && \ + chmod 0644 /etc/containers/containers.conf + +VOLUME /home/vscode/.local/share/containers + +# Replace setuid bits by proper file capabilities for uidmap binaries. +# See . +RUN apt-get install -y libcap2-bin && \ + chmod 0755 /usr/bin/newuidmap /usr/bin/newgidmap && \ + setcap cap_setuid=ep /usr/bin/newuidmap && \ + setcap cap_setgid=ep /usr/bin/newgidmap && \ + apt-get autoremove --purge -y libcap2-bin + +ENV _CONTAINERS_USERNS_CONFIGURED="" + +#RUN SNIPPET="export PROMPT_COMMAND='history -a' && \ +# export HISTFILE=/commandhistory/.bash_history" && \ +# echo "$SNIPPET" >> "/root/.bashrc" + +#USER vscode +#WORKDIR /home/vscode + diff --git a/.devcontainer/compose.yml b/.devcontainer/compose.yml new file mode 100644 index 000000000..0988096c5 --- /dev/null +++ b/.devcontainer/compose.yml @@ -0,0 +1,23 @@ +# compose.yml +version: '3.8' +#volumes: +# projectname-bashhistory: # Define named volume for bash history + +# Note: The 'bashhistory' service is used to persist bash history data across different containers. +services: +# bashhistory: +# volumes: +# - projectname-bashhistory:/commandhistory:z # Mount the named volume to /commandhistory in bashhistory service + + devcontainer: + container_name: devcontainer + privileged: true + hostname: devcontainer + build: + context: . + dockerfile: Containerfile + volumes: + - ..:/workspace:cached # Mount parent directory to workspace + # - projectname-bashhistory:/commandhistory:z # Mount the named volume to /commandhistory in devcontainer service + command: sleep infinity + diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..9fe1c661d --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,34 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/debian +{ + "name": "devcontainer", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile +// "image": "mcr.microsoft.com/devcontainers/base:trixie" +// "build": { +// "dockerfile": "Dockerfile" +// } + "dockerComposeFile": "compose.yml", + "service": "devcontainer", + + // default workspace path in container to open + "workspaceFolder": "/workspace" //${localWorkspaceFolder}" + +// "mounts": [ +// "source=projectname-bashhistory,target=/commandhistory,type=volume" +// ], +// "postCreateCommand": { +// "Fix Volume Permissions": "chown -R $(whoami): /commandhistory" +// } + + // 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": [], + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +}