# ───────────────────────────────────────────────────────────────────────────── # 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"]