A few weeks ago I was handed two deployment tasks that looked routine on paper: containerize and ship a React frontend, then do the same for its Django backend. Both apps were already running somewhere one on manage.py runserver, the other via a dev Dockerfile nobody had touched in years. "Just make it production-ready" is a deceptively small sentence. Here's what actually happened.
Part 1: The Frontend That Wasn't Next.js
The first Dockerfile I inherited looked like this at the runner stage:
FROM node:22-alpine AS runner
COPY --from=builder /app/.next/standalone ./






