mail-s3-admin/Dockerfile

40 lines
1.1 KiB
Docker

# ---- deps ----
FROM node:18-alpine AS deps
WORKDIR /app
COPY package*.json ./
# Für reproduzierbare Builds: CI bevorzugt
RUN npm ci
# ---- builder ----
FROM node:18-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
ENV NODE_ENV=production
# Falls du Prisma o.ä. verwendest, optional vor dem Build:
# RUN npx prisma generate
RUN npm run build
# ---- runner (Variante A: Standard "npm start") ----
# Nutze diese Runner-Stufe, wenn du KEIN 'output: standalone' hast:
FROM node:18-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=3000
COPY --from=builder /app ./
EXPOSE 3000
CMD ["npm", "start"]
# ---- runner-standalone (Variante B: Next.js Standalone) ----
# Wenn du in next.config.js 'output: "standalone"' gesetzt hast,
# kannst du stattdessen diese Runner-Stufe verwenden und die obere auskommentieren:
# FROM node:18-alpine AS runner
# WORKDIR /app
# ENV NODE_ENV=production
# ENV PORT=3000
# COPY --from=builder /app/.next/standalone ./
# COPY --from=builder /app/.next/static ./.next/static
# COPY --from=builder /app/public ./public
# EXPOSE 3000
# CMD ["node", "server.js"]