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