FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN mkdir -p data RUN npm run build FROM node:20-alpine WORKDIR /app RUN apk add --no-cache sqlite-libs curl python3 make g++ RUN npm install serve express cors COPY package*.json ./ RUN npm install --production COPY --from=builder /app/dist ./dist COPY --from=builder /app/public ./public COPY --from=builder /app/data ./data EXPOSE 80 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD curl -f http://localhost/ || exit 1 ENV NODE_ENV=production ENV PORT=80 CMD ["npx", "serve", "--listen", "80", "--single", "--cors", "dist"]