настройка миграции докера django-mongo db - PullRequest
0 голосов
/ 19 ноября 2018
version: "3"

services:
  rango_api:
    container_name: rango
    build: ./
    # command: python manage.py runserver 0.0.0.0:8000
    command: python manage.py runserver 0.0.0.0:8000
    working_dir: /usr/src/rango_api
    environment:
      REDIS_URI: redis://redis:6379
      MONGO_URI: mongodb://rango:27017
    ports:
      - "8000:8000"
    volumes:
      - ./:/usr/src/rango_api
    links:
      - redis
      - elasticsearch
      - mongo


  #redis
  redis:
    image: redis
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - "6379:6379"

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.0
    ports:
      - "9200:9200"
      - "9300:9300"

  mongo:
    image: mongo
    ports:
      - "27017:27017"

вот мой файл docker-compose для django с mongodb. Я не могу понять, где написать «python manage.py migrate». когда я пишу перед командой 'runserver', она не работает.

1 Ответ

0 голосов
/ 19 ноября 2018

Обычно вы не хотите запускать миграцию каждый раз, когда запускаете сервер, чтобы оценить концепцию эфемерного контейнера, лучшее решение выглядит так:

services:
  web:
    build: .
    image: your_project
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    depends_on:
      - migration
      - db
  migration:
    image: your_project
    command: python manage.py migrate --noinput
    depends_on:
      - db

Оригинальный ответ

Предполагается, чтовы уже сделали python manage.py makemigrations,

использовать "bash -c 'python manage.py migrate --no-input && python manage.py runserver 0.0.0.0:8000'"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...