TemplateDoesNotExist at / index.html in Docker | react with django

  django, docker, docker-compose, nginx, reactjs

Why my react build folder doesn’t serve after run python manage.py collectstatic command in Dockerfile? I have tried for a long time to dockerized my whole project but I did fail to collect static files. Where I miss please have a look into it.

***This is my backend/Dockerfile inside django project ***

FROM python:3.9.5-slim

ENV PYTHONUNBUFFERED 1

RUN pip install --upgrade pip

RUN apt-get update && apt-get install build-essential python-dev -y

COPY requirements.txt requirements.txt

RUN pip3 install -r requirements.txt && pip3 install uwsgi

WORKDIR /django

COPY . .

CMD ['RUN', 'python', 'manage.py', 'collectstatic', '--noinput']


EXPOSE 8000


CMD ["uwsgi", "--http", ":9090", "--wsgi-file", "IMS/wsgi.py", "--master", "--processes", "4", "--threads", "2"]

And this is my frontend/Dockerfile inside my react folder

FROM node:13.12.0-alpine
WORKDIR /react

COPY . .

RUN npm install

RUN npm run build

EXPOSE 3000

And finally, this is my docker-compose.yml file where I setup 3 services

version: "3.3"
services:
  backend:
    build:
      context: ./backend/
    command: gunicorn IMS.wsgi --bind 0.0.0.0:8000
    container_name: ims-backend
    restart: always
    ports:
      - "8000:8000"
    networks:
      - ims-network


  ims-postgres:
    image: "postgres:14beta2-alpine3.14"
    restart: always
    container_name: ims-postgres
    hostname: emrdsaws.czlz2b677ytu.ap-south-1.rds.amazonaws.com
    environment:
      - POSTGRES_PASSWORD=zkf!%uW_?&UG%4
      - POSTGRES_DB=imsrds
      - POSTGRES_USER=dbrdsubuntume12
    ports:
      - 5432



  frontend:
    build:
      context: ./frontend/
    volumes:
      - react_build:/react/build
    expose:
      - 3000
    stdin_open: true

  nginx:
    image: nginx:latest

    ports:
      - "8080:8080"
    volumes:
      - ./nginx/nginx-setup.conf:/etc/nginx/conf.d/default.conf:ro
      - react_build:/var/www/react
    depends_on:
      - backend
      - frontend
      - ims-postgres

volumes:
  react_build:

networks:
  ims-network:
    driver: bridge

Source: Docker Questions

LEAVE A COMMENT