Add Dockerfile: Astro build + Express + SES
This commit is contained in:
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
# ── MoreminiMore — Astro + Express + SES ─────────────────────────
|
||||
# Build: npm run build → Runtime: node server.js (port 4321)
|
||||
#
|
||||
# Env vars:
|
||||
# SES_ACCESS_KEY_ID (optional — SES email sending)
|
||||
# SES_SECRET_ACCESS_KEY (optional)
|
||||
# SES_REGION (default: ap-southeast-1)
|
||||
# PORT (default: 4321)
|
||||
|
||||
FROM node:22-bookworm-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# ── Dependencies ──────────────────────────────────────────────────
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci --omit=dev 2>/dev/null || npm ci
|
||||
|
||||
# ── Source + Build ───────────────────────────────────────────────
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
|
||||
# ── Prune build-only deps (astro is ~200MB) ──────────────────────
|
||||
# Keep: express, cors, nodemailer, @aws-sdk/client-ses
|
||||
RUN npm prune --omit=dev 2>/dev/null; \
|
||||
npm ls --depth=0 2>/dev/null || true
|
||||
|
||||
# ── Runtime ──────────────────────────────────────────────────────
|
||||
EXPOSE 4321
|
||||
CMD ["node", "server.js"]
|
||||
Reference in New Issue
Block a user