gpt4 book ai didi

python - django runserver 在 docker-compose up 中挂起,但在 docker-compose run 中正常运行

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:43 25 4
gpt4 key购买 nike

编辑

将 --ipv6 添加到命令中,虽然没有正确配置,但似乎超出了进程挂起的点。

enter image description here

问题

  • 调用docker-compose up执行runserver,但在打印当前时间后的某个时刻挂起。

docker-compose up

  • 调用docker-compose run -p 8000:8000 web python manage.py runserver 0.0.0.0:8000也会执行服务器,但会成功并且可以到达192.168.99.100:8000 .

docker-compose run -p 8000:8000 web python manage.py runserver 0.0.0.0:8000

问题

为什么我可以直接从 shell 中的 docker-compose 运行服务器,而不是从 .yml 文件运行服务器?

对我来说,.yml 文件的内容和 shell 中的 docker-compose 运行行非常相似。

我能想到的唯一区别可能是正确启动 django 服务器所需的某种级别的权限,但我不知道如何解决这个问题。 Docker 在 Windows 8.1 机器上运行。我的虚拟机的共享文件夹是默认的 c:\Users。

文件

我的文件夹包含一个新的 django 项目以及这些 docker 文件。我篡改了不同版本的python和django,但结果是一样的。我已经在尝试之间使用

清理了我的图像和容器
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

docker-compose.yml

version: '3'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"

Dockerfile

FROM python:3.6-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

requirements.txt

Django>=1.8,<2.0

系统

我的操作系统是windows 8.1

最佳答案

我自己也遇到了这个问题,似乎您需要为容器分配一个 tty 和一个 stdin 才能使 runserver 工作:

  python:
image: my-image:latest
stdin_open: true # docker run -i
tty: true # docker run -t
build:
context: ..
dockerfile: docker/Dockerfile

关于python - django runserver 在 docker-compose up 中挂起,但在 docker-compose run 中正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53371186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com