OhMad
OhMad

Reputation: 7289

Django with Docker - Server not starting

I have followed the steps in the official docker tutorial for getting up and running with django: https://docs.docker.com/compose/django/

It works fine until I have to run docker-compose up

It doesn't directly give me an error, but it won't run the server either, stopping at this point:

(Screenshot of the Docker Quickstart Terminal)

enter image description here

docker-compose.yml:

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: >
      bash -c
        "python3 manage.py migrate
        python3 manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

I am on Windows and have therefore used docker-toolbox.

Thanks for your suggestions!

Upvotes: 1

Views: 3054

Answers (2)

m51
m51

Reputation: 2010

Start docker-compose in detached mode:

docker-compose up -d

check your django container id

docker ps

then log into container:

docker exec -it yourDjangoContainerID bash

then go to directory where manage.py file is, and type

python manage.py migrate

Upvotes: 3

Mark Chackerian
Mark Chackerian

Reputation: 23512

You can put the migration command into your docker-compose.yml file. Something like

web:
  command: >
    bash -c
      "python3 manage.py migrate
      python3 manage.py runserver 0.0.0.0:8000"

replacing

web:
  command: python3 manage.py runserver 0.0.0.0:8000

This will apply migrations every time you do docker-compose up.

Upvotes: 1

Related Questions