I can think of only two reasons to have a venv inside a container:
-
If you're running third-party services inside a container, pinned to different Python versions.
-
If you do local development without docker and scripts that have to activate the venv from inside the script. If you move the scripts inside the container, now you don't have a venv. But then it's easy to just check an environment variable and skip, if inside Docker.
For most applications, it seems like an unnecessary extra step.