nickjj / docker-django-example

A production ready example Django app that's using Docker and Docker Compose.
MIT License
1.17k stars 249 forks source link

Updating dependencies during development #7

Closed 55nevets closed 2 years ago

55nevets commented 2 years ago

The readme states that I need to execute "./run pip3:install" to update dependencies during development.

Should this only be run when you want to "lock in" your dependencies to your docker container? i.e. if I'm working in my pycharm IDE and adding new python modules via pip3 , running the "./run pip3:install" command takes time to rebuild everything (3-4mins). I assume there's no need to rebuild after each module install as this would be impractical.

Just want to understand this process as a docker noob.

nickjj commented 2 years ago

Hi,

Since all of our dependencies live in the Docker image (not our dev box) that command will install our dependencies in the Docker image, start things up and copy out the lock file to our dev box so we can commit it to version control.

I don't use PyCharm but if it's installing dependencies locally and not remotely in the Docker image then you're not really running the app in Docker which is going to cause other issues down the road like having to configure connection strings to connect to Redis and Postgres from localhost instead of their Docker Compose service name.

But the takeaway here is yes it's time consuming and inconvenient to do this with Docker but it's a necessary evil to get our dependencies installed into a Docker image in a persistent way.

nickjj commented 2 years ago

Going to close this. There's not much that can be done here. It's how Docker works and I think the above comment covers it.