feat: initial commit — OST to PST/MBOX converter with Docker support
Some checks failed
Build & Push Multi-Arch Image / build-and-push (push) Has been cancelled
Some checks failed
Build & Push Multi-Arch Image / build-and-push (push) Has been cancelled
This commit is contained in:
38
Dockerfile
Normal file
38
Dockerfile
Normal file
@@ -0,0 +1,38 @@
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# 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"]
|
||||
Reference in New Issue
Block a user