But you’ve gained the ability to do static analyses and quality control, enforce authorisation on who can deploy to the prod server, gained accountability and a history of changes by virtue of having it in the repo, enabled everyone to run the image locally regardless of their local environment…
To be fair, this can all be achieved with other tools, while still rsyncing the Python to prod.
One advantage is being able to run the Docker anywhere with the same build. Two runs of the same build are not always the same, but the Docker image will be.