Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issue with Dockerising Django app using docker-compose

I am new to Docker and I want to dockerise the Django app to run as a container. Followed as below.

Here is the Dockerfile

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

Here is docker-compose.yml conf

version: '3'

networks:
    mynetwork:
        driver: bridge

services:

  db:
    image: postgres
    ports:
      - "5432:5432"
    networks:
      - mynetwork
    environment:
      POSTGRES_USER: xxxxx
      POSTGRES_PASSWORD: xxxxx

  web:
    build: .
    networks:
      - mynetwork
    links:
      - db
    environment:
      SEQ_DB: cath_local
      SEQ_USER: xxxxx
      SEQ_PW: xxxxx
      PORT: 5432
      DATABASE_URL: postgres://xxxxx:xxxxx@db:5432/cath_local

    command: python manage.py runserver 0.0.0.0:8000

    volumes:
      - .:/code

    ports:
      - "8000:8000"

    depends_on:
      - db

well on my docker shell i point to Dockerfile directory, if i run an ls command from y path i see the manage.py file, but if i run:

docker-compose up

i get this error:

web_1 | python: can't open file 'manage.py': [Errno 2] No such file or directory core_web_1 exited with code 2

Why my app don't find manage.py file that is in the same position as the "docker-compose up" command is?

PS: No /code folder is created when i run docker-compose command. Is it correct?

So many thanks in advance

like image 867
Manuel Santi Avatar asked Feb 28 '26 16:02

Manuel Santi


1 Answers

try to edit your Dockerfile like this:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

and remove command: python manage.py runserver 0.0.0.0:8000 from compose

I assumed that the manage.py is in /code/ folder, since you have WORKDIR /code in the dockerfile then the server will be created in the build stage and the files will be copied to it

like image 82
LinPy Avatar answered Mar 02 '26 06:03

LinPy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!