tambi / deploy /Dockerfile
mmt
Make email proxy optional
bd0c17c
Raw
History Blame Contribute Delete
913 Bytes
# Tambi — Hugging Face Docker Space
# Copy this file to the Space repo root (next to package.json).
FROM node:22-alpine AS builder
WORKDIR /app
# Prisma schema must exist before npm ci (postinstall runs `prisma generate`)
COPY package.json package-lock.json prisma.config.ts .npmrc ./
COPY prisma ./prisma
RUN npm ci
COPY . .
# Build-time placeholder — env.ts validates this as a URL during `next build`.
# The real value is injected at runtime via HF Space secrets.
ARG DATABASE_URL=postgresql://placeholder:placeholder@localhost:5432/placeholder
ENV DATABASE_URL=$DATABASE_URL \
NODE_ENV=production
RUN npm run build
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
# HF Spaces run best as a non-root user (uid 1000) — node:alpine ships one: "node"
COPY --from=builder --chown=node:node /app .
USER node
EXPOSE 3000
CMD ["npx", "next", "start", "-H", "0.0.0.0", "-p", "3000"]