Docker-compose django+mongo 应用程序卡在“正在执行系统检查...”
Posted
技术标签:
【中文标题】Docker-compose django+mongo 应用程序卡在“正在执行系统检查...”【英文标题】:Docker-compose django+mongo app stuck at "Performing system checks..." 【发布时间】: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 |
任何帮助将不胜感激!!!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Docker-compose django+mongo 应用程序卡在“正在执行系统检查...”的主要内容,如果未能解决你的问题,请参考以下文章
使用 docker-compose 链接 django 和 mysql 容器
通过主管和 docker-compose 从 django 输出彩色日志
django 无法在 docker-compose 中连接 mysql