Utilizzo un contenitore Docker per lo sviluppo di Django e il contenitore esegue Gunicorn con Nginx. Mi piacerebbe che le modifiche al codice venissero caricate automaticamente, ma l'unico modo per caricarle è ricostruire con docker-compose (docker-compose build
). Il problema con "build" è che esegue nuovamente tutte le mie installazioni di pip.Ripristino automatico delle modifiche al codice con lo sviluppo di Django in Docker con Gunicorn
Sto usando la bandiera Gunicorn --reload
, che apparentemente dovrebbe fare ciò che voglio. Qui sono i miei Docker file di configurazione:
## Dockerfile:
FROM python:3.4.3
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r /code/requirements/docker.txt
## docker-compose.yml:
web:
restart: always
build: .
expose:
- "8000"
links:
- postgres:postgres
volumes:
- /usr/src/app/static
env_file: .env
command: /usr/local/bin/gunicorn myapp.wsgi:application -w 2 -b :8000 --reload
nginx:
restart: always
build: ./config/nginx
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web
postgres:
restart: always
image: postgres:latest
volumes:
- /var/lib/postgresql
ports:
- "5432:5432"
che ho provato alcuni degli altri comandi Docker (docker-compose restart
, docker-compose up
), ma il codice non verrà aggiornata.
Cosa mi manca?
hai condiviso il volume con il tuo codice? Puoi pubblicare parte del tuo docker-compose.yml per visualizzare lo scenario? – kikicarbonell
Non capisco il tuo "Il problema con" build "è che esegue di nuovo tutte le mie installazioni di pip." Forse puoi fare prima tutte le installazioni di pip, in modo che 'docker build' carichi solo le modifiche al codice. Puoi mostrare il tuo Dockerfile? Puoi anche avere un Dockerfile che inizia con 'FROM mypipinstalls' – user2915097
kikicarbonell, la tua domanda mi ha aiutato a capire che avevo bisogno di un volume per il mio codice, e questo sembra aver risolto il problema, quindi grazie per avermi condotto alla soluzione! –