FROM node:20-alpine AS base WORKDIR /app RUN apk add --no-cache python3 make g++ su-exec \ && npm install --global npm@latest COPY package*.json tsconfig.json ./ RUN npm install COPY src ./src COPY shared ./shared RUN npm run build RUN addgroup -S appuser && adduser -S -G appuser appuser \ && mkdir -p /app/data \ && chown -R appuser:appuser /app COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh EXPOSE 8000 ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["node", "dist/index.js"]