basics working, being rebuild and reopen remote

This commit is contained in:
arjan 2026-05-20 12:38:14 +02:00
parent 6c0a82b2e0
commit 0817d7be67
3 changed files with 102 additions and 0 deletions

View file

@ -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 <https://github.com/containers/podman/discussions/19931>.
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

23
.devcontainer/compose.yml Normal file
View file

@ -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

View file

@ -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"
}