fix: use Next.js standalone mode for better Docker deployment

This commit is contained in:
soufiane 2025-11-18 17:07:04 +01:00
parent 6b2b52dc1c
commit 9d625a3a0a
2 changed files with 17 additions and 5 deletions

View File

@ -24,9 +24,17 @@ RUN npm run build || (test -d .next && echo "Build completed with SSR warnings (
FROM node:20-alpine AS runner FROM node:20-alpine AS runner
WORKDIR /app WORKDIR /app
ENV NODE_ENV=production ENV NODE_ENV=production
COPY --from=builder /app/.next .next
# Copy standalone server and dependencies
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public COPY --from=builder /app/public ./public
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/node_modules ./node_modules # Set environment variables at runtime
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
ENV NEXT_PUBLIC_FRONTEND_URL=$NEXT_PUBLIC_FRONTEND_URL
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=$NEXT_PUBLIC_GOOGLE_CLIENT_ID
ENV NEXT_PUBLIC_FACEBOOK_APP_ID=$NEXT_PUBLIC_FACEBOOK_APP_ID
EXPOSE 3000 EXPOSE 3000
CMD ["npm", "run", "start"] CMD ["node", "server.js"]

View File

@ -1,6 +1,7 @@
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = { const nextConfig = {
reactStrictMode: true, reactStrictMode: true,
output: 'standalone',
env: { env: {
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
}, },
@ -11,7 +12,10 @@ const nextConfig = {
eslint: { eslint: {
ignoreDuringBuilds: false, ignoreDuringBuilds: false,
}, },
// si tu as des rewrites ou redirections, vérifie aussi // Skip static page generation errors for client-only pages
experimental: {
missingSuspenseWithCSRBailout: false,
},
}; };
module.exports = nextConfig; module.exports = nextConfig;