Установка React, Python и Neo4j в Docker

Я пытаюсь создать Docker-контейнер с React на фронтенде, Django на бэкенде и Neo4j в качестве базы данных. На данный момент все три компонента работают правильно, но я просто не могу заставить Django подключиться к базе данных Neo4j. Я прочитал, наверное, все учебники в интернете и перепробовал все, но всегда возникает какая-то ошибка и база данных недоступна или отказывает в доступе. Я также проработал это учебник и создал модели соответствующим образом. Однако я всегда получаю ошибку, когда запускаю "python manage.py install_labels". Похоже, что я либо не могу подключиться к базе данных, либо запрос отклоняется.

Кто-нибудь из вас когда-либо создавал подобную среду или может мне помочь? Может быть, Django просто не очень подходит для этого ..... В основном мне нужен фронтенд на React и бэкенд на Python, работающий с базой данных Neo4j. И все это, пожалуйста, в образе Docker. Есть ли какие-нибудь лучшие альтернативы для бэкенда?

Заранее спасибо за помощь!

Ниже вы можете увидеть все мои файлы, которые являются важными на мой взгляд.

Мои Dockerfiles выглядят следующим образом:

# Django Dockerfile
FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /myapp

COPY /myapp/django_backend/requirements.txt /myapp/
RUN pip install --no-cache-dir -r requirements.txt

COPY /myapp/django_backend /myapp/
# React Dockerfile
FROM node:17-alpine3.14

WORKDIR /myapp

COPY /myapp/react_frontend /myapp

RUN npm install

CMD ["npm", "start"]

Мой файл docker-compose:

version: '3.8'

services:
  react:
    image: react_frontend:latest
    restart: unless-stopped
    volumes:
      - ./myapp/react_frontend/public:/myapp/public
      - ./myapp/react_frontend/src:/myapp/src
    ports:
      - 3000:3000

   django:
     image: django_backend:latest
     command: python manage.py runserver 0.0.0.0:8000
     volumes:
       - ./myapp/django_backend:/myapp
     ports:
       - 8000:8000
     expose:
       - 8000
     depends_on:
       - neo4j
     links:
       - neo4j
     networks:
       - neo4j_network

  neo4j:
    image: neo4j:4.4.3
    restart: unless-stopped
    ports:
      - 7474:7474
      - 7687:7687
    volumes:
      - neo4j_data:/neo4j/data

volumes:
  neo4j_data:

networks:
  neo4j_network:
    driver: bridge

Мои требования.txt:

Django>=3.0,<4.0

djangorestframework>=3.13,<4.0
django-cors-headers>=3.11,<4.0

psycopg2>=2.8

# neo4j and django connection
django-neomodel>=0.0.4
neomodel>=3.3,<4.0
neo4j-driver>=1.7,<2.0

И settings.py из бэкенда Django:

Проверьте свой файл requirements.txt. Там сказано neo4j-driver>=1.7,<2.0, что означает, что вы должны использовать neo4j версии 3.5 или ниже. Посмотрите на эту документацию:

https://neo4j.com/developer/kb/neo4j-supported-versions/

Проверьте свой файл requirements.txt. Там сказано neo4j-driver>=1.7,<2.0, что означает, что вы должны использовать neo4j версии 3.5 или ниже. Посмотрите на эту документацию:

https://neo4j.com/developer/kb/neo4j-supported-versions/

Вернуться на верх