diff --git a/backend/Dockerfile b/backend/Dockerfile index 5b753bd..e602f45 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,16 +1,28 @@ -# Basis-Image +FROM python:3.9-slim AS python-deps + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + gcc \ + && rm -rf /var/lib/apt/lists/* + +RUN python -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" +RUN pip3 install --no-cache-dir watchdog gradio rembg + FROM node:18-alpine AS base -# Install system dependencies -RUN apk add --no-cache libc6-compat libreoffice ttf-liberation ffmpeg -RUN apk add --update --no-cache python3 py3-pip \ - && ln -sf python3 /usr/bin/python \ - && pip3 install --no-cache --upgrade pip setuptools \ -RUN pip3 install --no-cache watchdog gradio rembg +RUN apk add --no-cache \ + python3 \ + ffmpeg \ + libreoffice \ + ttf-liberation \ + libc6-compat + +COPY --from=python-deps /opt/venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" WORKDIR /app -# Dependencies installieren FROM base AS deps COPY package.json package-lock.json* yarn.lock* pnpm-lock.yaml* ./ @@ -21,7 +33,6 @@ RUN \ else echo "Lockfile not found." && exit 1; \ fi -# Build stage FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules @@ -34,7 +45,6 @@ RUN \ else echo "Lockfile not found." && exit 1; \ fi -# Production image FROM base AS runner WORKDIR /app @@ -43,7 +53,6 @@ ENV NODE_ENV=production RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 fastify -# Copy built application COPY --from=builder --chown=fastify:nodejs /app/dist ./dist COPY --from=deps --chown=fastify:nodejs /app/node_modules ./node_modules COPY --from=builder --chown=fastify:nodejs /app/package.json ./package.json