From a28e6fbcbfc8feccdcba200c2421f5c42a78d97a Mon Sep 17 00:00:00 2001 From: Arne Rief Date: Sat, 10 Jan 2026 22:33:36 +0100 Subject: Docker --- backend/Dockerfile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 backend/Dockerfile (limited to 'backend/Dockerfile') diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..47a96e6 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,43 @@ +# syntax=docker/dockerfile:1 + +# BUILD STAGE +FROM node:22-alpine AS builder + +WORKDIR /app + +COPY package*.json ./ + +# Install all dependencies, dev dependencies needed for build +RUN npm ci + +COPY . . + +# Build TypeScript +RUN npm run build + +# PRODUCTION STAGE +FROM node:22-alpine AS production + +WORKDIR /app + +COPY package*.json ./ + +# Install only production dependencies +RUN npm ci --omit=dev + +# Copy .env.docker to .env to silence Docker warning +COPY .env.docker .env + +# Copy compiled code from builder stage +COPY --from=builder /app/dist ./dist + +# Create non-root user for security +RUN addgroup -g 1001 -S nodejs && \ + adduser -S nodejs -u 1001 && \ + chown -R nodejs:nodejs /app + +USER nodejs + +EXPOSE 3000 + +CMD ["npm", "start"] \ No newline at end of file -- cgit v1.2.3