Как контейнеризировать sqlite3 и приложение Django в отдельных контейнерах для локальной разработки

Мой проект - это веб-приложение, которое использует две технологии wiz: Django + Sqlite3 + Neo4J. Я работаю над написанием файла docker-compose, чтобы я мог создать полный env всего одной командой. Мне не ясно, как я могу создать три отдельных контейнера, 1 для Djano, 1 для sqlite3, 1 для neo4j, чтобы приложения могли легко работать вместе. Здесь загвоздка в том, что когда Django приложение выполняет команду migrate, оно создает некий файл config.db в своей файловой системе, и он также должен быть общим с sqlite3 db. Так как же люди решают проблему sqlite3 и Django контейнера, где скелет таблицы создается Django перед запуском сервера и в то же время они хотят запустить sqlite3 в отдельном контейнере.

мой docker-compose.yml:

version: '3'

volumes:
  local_neo4j_data: {}
  local_sqllite_data: {}

networks:
  ecosystem_network:
    driver: bridge

services:
  neo4j:
    image: neo4j:latest #4.3.3-community  latest
    container_name: neo4j
    ports:
      - "7474:7474"
      - "7687:7687"
    networks:
      - ecosystem_network
    environment:
      - NEO4J_AUTH=neo4j/eco_system
      - NEO4J_dbms_memory_pagecache_size=512M
    volumes:
      - ${HOME}/neo4j/data:/data 
      - ${HOME}/neo4j/logs:/logs 
      - ${HOME}/neo4j/import:/var/lib/neo4j/import 
      - ${HOME}/neo4j/plugins:/plugins 

  sqllite3:
    image: nouchka/sqlite3:latest
    container_name: sqllite3
    stdin_open: true
    tty: true
    volumes:
      - local_sqllite_data:./root/db
    networks:
      - ecosystem_network
  
  myapp_python:
    container_name: myapp_python
    build:
      context: .
      dockerfile: compose/Dockerfile
    volumes:
      - local_sqllite_data:./myapp_dashboard/config.db
    env_file:
      - ./myapp_dashboard/.env
    networks:
      - myapp_network
    links:
      - neo4j
    depends_on:
      - sqllite3

Dockerfile:

FROM python:3.7-alpine
RUN apk update && apk upgrade 
#RUN apk update && \
#    apk add --no-cache --virtual build-deps gcc musl-dev

#RUN apk add --no-cache --update sqlite=3.35.5-r 
ENV PYTHONUNBUFFERED 1
RUN pip install -r requirements.txt

RUN mkdir /app
COPY ./ /app
WORKDIR /app

RUN cd ecosystem_dashboard && source .env \
  && cd .. \
  && python manage.py migrate \
  && python manage.py createsuperuser \
  && python deploy.py 

CMD python manage.py runserver 0.0.0.0:8001
Вернуться на верх