diff --git a/infra/docker/Dockerfile.backend b/infra/docker/Dockerfile.backend index 79ca8f8..e832c08 100644 --- a/infra/docker/Dockerfile.backend +++ b/infra/docker/Dockerfile.backend @@ -1,4 +1,4 @@ -FROM node:22-alpine +FROM node:22-slim WORKDIR /app @@ -6,11 +6,10 @@ WORKDIR /app RUN npm install -g pnpm # Install build tools for native dependencies (node-crc, @discordjs/opus) -# @discordjs/voice is a shared workspace dependency needed even by backend -RUN apk add --no-cache python3 make g++ +RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends python3 make g++ wget && rm -rf /var/lib/apt/lists/* # Create non-root user -RUN addgroup -S app && adduser -S -G app app +RUN groupadd --system app && useradd --system -g app app # Copy dependency definition files first for better caching COPY pnpm-workspace.yaml . diff --git a/infra/docker/Dockerfile.discord-gateway b/infra/docker/Dockerfile.discord-gateway index 8167c41..e89ef9f 100644 --- a/infra/docker/Dockerfile.discord-gateway +++ b/infra/docker/Dockerfile.discord-gateway @@ -11,7 +11,10 @@ RUN addgroup -S app && adduser -S -G app app # Install build tools for native dependencies (node-crc, @discordjs/opus) # and ffmpeg for voice transmit (PCM to OggOpus encoding) # This is done early to cache this expensive layer -RUN apk add --no-cache python3 make g++ rust cargo ffmpeg +RUN apk add --no-cache python3 make g++ rust cargo ffmpeg linux-headers + +# Use bundled node headers for native addon compilation +ENV npm_config_nodedir=/usr/local # Copy dependency definition files first for better caching COPY pnpm-workspace.yaml .