Some checks failed
Build & Push Multi-Arch Image / build-and-push (push) Has been cancelled
39 lines
2.8 KiB
Docker
39 lines
2.8 KiB
Docker
# ─────────────────────────────────────────────────────────────────────────────
|
|
# 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"]
|