【问题标题】:Docker-compose django+mongo app stuck at "Performing system checks..."Docker-compose django+mongo 应用程序卡在“正在执行系统检查...”
【发布时间】:2021-07-02 00:40:59
【问题描述】:

使用 djongo 使用 mongodb 运行 django 应用程序。这是 docker-compose 文件:

version: '3.1'

volumes:
    mongo:

services:
  mongodb:
    image: mongo
    restart: always
    volumes:
      - 'mongo:/data/db'
    ports:
      - 27017:27017

  web:
    build: .
    restart: always
    depends_on:
      - 'mongodb'
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/django_mongodb_docker
    ports:
      - 8000:8000
    links:
      - 'mongodb'

构建成功,然后卡在以下:

web_1      | Watching for file changes with StatReloader
web_1      | Performing system checks...
web_1      | 

任何帮助将不胜感激!!!

【问题讨论】:

    标签: django mongodb docker docker-compose djongo


    【解决方案1】:

    我也经历了这个,设法通过以下配置建立了这种联系:

    docker-compose.yml

    version: "3.9"
    services:
    mongodb:
      environment:
        MONGO_INITDB_DATABASE: mydatabase
        MONGO_INITDB_ROOT_USERNAME: root
        MONGO_INITDB_ROOT_PASSWORD: password
      hostname: mongodb
      image: mongo
      ports:
        - "27017:27017"
      volumes: 
        - ./data-mongodb:/data/db
      
    api:
      build: .
      command: "python manage.py runserver 0.0.0.0:8000"
      volumes:
        - .:/code
      ports:
        - "8000:8000"
      depends_on:
        - mongodb
    

    Dockerfile

    # syntax=docker/dockerfile:1
    FROM python:3
    ENV PYTHONUNBUFFERED=1
    WORKDIR /code
    COPY requirements.txt /code/
    RUN pip install --upgrade pip
    RUN pip install -r requirements.txt
    COPY . /code/
    

    requirements.txt

    asgiref==3.4.1
    Django==3.2.7
    django-annoying==0.10.6
    djangorestframework==3.12.4
    djongo==1.3.6
    pymongo==3.12.1
    pytz==2021.3
    six==1.16.0
    sqlparse==0.2.4
    

    settings.py

    DATABASES = {
        'default': {
          'ENGINE': 'djongo',
          'NAME': 'mydatabase',
          'CLIENT': {
              'host': 'mongodb://mongodb:27017',
              'username': 'root',
              'password': 'password',
              'authSource': 'admin',
              'authMechanism': 'SCRAM-SHA-1',
          }
      }
    }
    

    这里使用的模型来自 Djongo 而不是from django.db import models

    models.py

    from djongo import models
    

    build之后,需要进入api容器,运行./manage.py migrate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 2018-06-12
      • 2019-03-13
      • 1970-01-01
      • 2020-12-19
      相关资源
      最近更新 更多