# ─────────────────────────────────────────────────────────────────────────────
# OST to PST Converter
# Base: Eclipse Temurin 21 JRE (Debian Bookworm slim) + Node.js 22 LTS
# ─────────────────────────────────────────────────────────────────────────────
FROM eclipse-temurin:21-jre-bookworm

LABEL maintainer="OST2PST Converter"
LABEL description="Converts Outlook OST files to PST or MBOX format via a web UI"

# ── Install Node.js 22 via NodeSource ────────────────────────────────────────
RUN apt-get update && apt-get install -y curl ca-certificates --no-install-recommends \
    && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
    && apt-get install -y nodejs --no-install-recommends \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# ── App directory ─────────────────────────────────────────────────────────────
WORKDIR /app

# ── Install Node dependencies first (better layer caching) ────────────────────
COPY package.json package-lock.json ./
RUN npm ci --omit=dev

# ── Copy application files ────────────────────────────────────────────────────
COPY server.js Convert.java aspose-email-24.12-jdk16.jar ./
COPY public/ ./public/

# ── Create runtime directories ────────────────────────────────────────────────
RUN mkdir -p uploads converted

# ── Expose web UI port ────────────────────────────────────────────────────────
EXPOSE 3000

# ── Health check ──────────────────────────────────────────────────────────────
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD curl -f http://localhost:3000 || exit 1

# ── Start server ──────────────────────────────────────────────────────────────
CMD ["node", "server.js"]
