I'm a recent user of docker and I am about to migrate from VM to containers in my production environment.
But then, I suddenly realize that what works perfectly for my dev and qa environments is not ideal for production.

On my dev and qa, I mount my versioned project folder into a python/php (name it) container and I consider this container as a "running service" for my code. This saves me from having huge containers as the container history doesnt change when I change my code (git commit or else).

In production, the ideal case is that I will have clean self contained containers with my code inside, not mounted like I do in dev.

So, did I get it wrong? How do you do it?
Do you use the same containers from dev to prod?