I have things split out where the Webpack dev server runs in its own container only in development. It uses the Docker Compose override pattern to skip it in production along with Docker's multi-stage builds to ensure production assets get built and digested with collectstatic when DEBUG is set to false.
I gave a talk this year at DockerCon on a whole bunch of patterns I use with Docker Compose and my Dockerfile to get dev / prod parity without duplication and overall best practices.
The video and blog post of that is at: https://nickjanetakis.com/blog/best-practices-around-product...
It walks through a live demo (0 slides) going over a Flask example app but it's 100% the same for Django.