Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django带Docker-服务器未启动_Python_Django_Docker_Docker Compose - Fatal编程技术网

Python Django带Docker-服务器未启动

Python Django带Docker-服务器未启动,python,django,docker,docker-compose,Python,Django,Docker,Docker Compose,我按照docker官方教程中的步骤使用django: 在我必须运行docker compose之前,它工作正常 它不会直接给我一个错误,但也不会运行服务器,此时停止: (Docker Quickstart终端的屏幕截图) docker compose.yml: version: '3' services: db: image: postgres web: build: . command: > bash -c "python3

我按照docker官方教程中的步骤使用django:

在我必须运行docker compose之前,它工作正常

它不会直接给我一个错误,但也不会运行服务器,此时停止:

Docker Quickstart终端的屏幕截图

docker compose.yml

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: >
      bash -c
        "python3 manage.py migrate
        python3 manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
我在Windows上,因此使用了docker工具箱


谢谢你的建议

您可以将迁移命令放入
docker compose.yml
文件中。差不多

web:
  command: >
    bash -c
      "python3 manage.py migrate
      python3 manage.py runserver 0.0.0.0:8000"
替换

web:
  command: python3 manage.py runserver 0.0.0.0:8000

这将在您每次以分离模式启动docker compose时应用迁移:

docker-compose up -d
检查您的django容器id

docker ps
然后登录到容器:

docker exec -it yourDjangoContainerID bash
然后转到manage.py文件所在的目录,然后键入

python manage.py migrate

您的错误就在您的帖子中,未应用的迁移。。。。。。这是python问题而不是docker问题。尝试应用迁移会导致“未知主机”错误。应用迁移无法解决此问题。它仍然不会运行服务器:/n您不必执行,只需运行一个sidecar容器:
docker compose run--rm web python manage.py migrate
。一般来说,如果你能通过跑步完成同样的事情,你应该避免执行;你的行动小组会感谢你的。