Python Django带Docker-服务器未启动
我按照docker官方教程中的步骤使用django: 在我必须运行docker compose之前,它工作正常 它不会直接给我一个错误,但也不会运行服务器,此时停止: (Docker Quickstart终端的屏幕截图) docker compose.yml: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
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
。一般来说,如果你能通过跑步完成同样的事情,你应该避免执行;你的行动小组会感谢你的。