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