Course and event creation Server Actions were failing with 'Something went
wrong' because empty form strings ('') were being inserted into date/uuid
columns which reject empty strings. Now converts '' to null for all
optional fields (dates, descriptions, IDs, contact info).
43 lines
1.4 KiB
Docker
43 lines
1.4 KiB
Docker
FROM node:22-alpine AS base
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
WORKDIR /app
|
|
|
|
# --- Install + Build in one stage ---
|
|
FROM base AS builder
|
|
# CACHE_BUST: change this value to force a full rebuild (busts Docker layer cache)
|
|
ARG CACHE_BUST=11
|
|
RUN echo "Cache bust: ${CACHE_BUST}"
|
|
COPY . .
|
|
RUN pnpm install --no-frozen-lockfile
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
|
# NEXT_PUBLIC_* vars are baked into the Next.js build at compile time.
|
|
# Pass them as build args so the same Dockerfile works for any environment.
|
|
ARG NEXT_PUBLIC_SITE_URL=https://myeasycms.de
|
|
ARG NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
|
|
ARG NEXT_PUBLIC_SUPABASE_PUBLIC_KEY
|
|
ARG NEXT_PUBLIC_DEFAULT_LOCALE=de
|
|
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}
|
|
ENV NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}
|
|
ENV NEXT_PUBLIC_SUPABASE_PUBLIC_KEY=${NEXT_PUBLIC_SUPABASE_PUBLIC_KEY}
|
|
ENV NEXT_PUBLIC_DEFAULT_LOCALE=${NEXT_PUBLIC_DEFAULT_LOCALE}
|
|
RUN pnpm --filter web build
|
|
|
|
# --- Run ---
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
|
COPY --from=builder /app/ ./
|
|
|
|
RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs
|
|
|
|
# Ensure Next.js cache directories are writable by the nextjs user
|
|
RUN mkdir -p /app/apps/web/.next/cache && chown -R nextjs:nodejs /app/apps/web/.next/cache
|
|
|
|
USER nextjs
|
|
|
|
EXPOSE 3000
|
|
CMD ["pnpm", "--filter", "web", "start"]
|