# Stage 1: Build the application
FROM node:lts-slim AS builder

WORKDIR /app

COPY package*.json ./
RUN npm cache clean --force
RUN npm install

COPY ./ ./
COPY entry.sh ./

# Build the application
RUN npm run build

# Stage 2: Create the production image
FROM node:lts-slim

RUN apt-get update && \
    apt-get install -yqq --no-install-recommends wget && \
    apt-get autoremove && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /app .
COPY --chmod=755 entry.sh /entry.sh

HEALTHCHECK --interval=30s \
            --timeout=5s \
            --start-period=10s \
            --retries=3 \
            CMD [ "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/auth/isconfigured" ]

EXPOSE 3000

CMD ["/entry.sh"]
