From 9d27cd9fe83b04d4d78c67e851f3d655affdb360 Mon Sep 17 00:00:00 2001 From: Fusion Date: Wed, 20 May 2026 11:32:58 +0200 Subject: [PATCH] fix: install Docker CLI and mount socket for instance management - Install docker-ce-cli and docker-compose-plugin in API Dockerfile - Mount /var/run/docker.sock into API container - Add appuser to docker group for socket permissions - Fixes FileNotFoundError when deleting instances --- apps/api/Dockerfile | 18 +++++++++++++++--- docker-compose.traefik.yml | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 9e9e51a..773adfc 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -16,16 +16,28 @@ RUN pip install --no-cache-dir --user -e ".[dev]" # Production stage FROM python:3.11-slim -# Create non-root user -RUN groupadd -r appgroup && useradd -r -g appgroup appuser +# Create non-root user and add to docker group +RUN groupadd -r appgroup && useradd -r -g appgroup appuser \ + && groupadd -r docker || true \ + && usermod -aG docker appuser WORKDIR /app -# Install runtime dependencies +# Install runtime dependencies including Docker CLI RUN apt-get update && apt-get install -y --no-install-recommends \ libpq5 \ git \ netcat-openbsd \ + ca-certificates \ + curl \ + gnupg \ + && install -m 0755 -d /etc/apt/keyrings \ + && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \ + && chmod a+r /etc/apt/keyrings/docker.gpg \ + && echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ + "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" > /etc/apt/sources.list.d/docker.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin \ && rm -rf /var/lib/apt/lists/* # Copy dependencies from builder diff --git a/docker-compose.traefik.yml b/docker-compose.traefik.yml index 00fa1c0..7bf6a14 100644 --- a/docker-compose.traefik.yml +++ b/docker-compose.traefik.yml @@ -95,6 +95,7 @@ services: - repo_data:/data/repos - instance_data:/data/instances - avatar_uploads:/app/uploads + - /var/run/docker.sock:/var/run/docker.sock depends_on: postgres: condition: service_healthy