Start with Docker’s doc
The link https://docs.docker.com/compose/django/ for the most part is valid in setting up a development environment for working with Django in Docker.
Update to use Pipfile
The document still uses the example of a requirements.txt to handle app dependencies. Django now has at least two newer alternatives:
- Setup.py
- Pipfile (pipenv)
One update to use pipenv
is to modify the Dockerfile
as such:
FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY . /code/ RUN pip install pipenv && pipenv install RUN pipenv run python manage.py migrate
That last command is optional; it can be deferred in the docker-compose.yml
if that works better.
Speaking of docker-compose.yml
:
version: '3' services: web: build: . command: pipenv run python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000"
(I removed the “db” service to keep this minimalistic.)