当前位置: 首页 > 知识库问答 >
问题:

python - 为什么使用 Django+ docker-compose 跑就会一直卡在 Attaching to ?

袁晟
2023-04-27

dockerfile

FROM python:3.10-buster
RUN /usr/local/bin/python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
RUN mkdir /code
WORKDIR /code
COPY requirements-prd.txt /code/
RUN pip install -i https://mirrors.aliyun.com/pypi/simple -r requirements-prd.txt
COPY . /code/
ENV PYTHONDONTWRITEBYTECODE 1

ENV PYTHONBUFFERED 1

docker-compose.yaml

version: "3"
services:
  twitter:
    container_name: twitter
    image: ponponon/twitter
    ports:
      - "8000:8000" # 这里的端口改为和 python manage.py runserver 0.0.0.0:8000  一样的端口才行
    # command: python manage.py runserver 0.0.0.0:8000
    command: ["python","manage.py", "runserver", "0.0.0.0:8000","--noreload"]

使用 docker run --rm -it ponponon/twitter python manage.py runserver 0.0.0.0:8080 一切正常

╰─➤  docker run --rm -it jiuzhang/twitter python manage.py runserver 0.0.0.0:8080
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
April 27, 2023 - 03:55:27
Django version 3.1.3, using settings 'twitter.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

但是使用 docker-compose 就有毛病, 永远卡在 Attaching to

╰─➤  docker-compose up  
[+] Running 2/2
 ⠿ Network twiter_default  Created                                                                         0.0s
 ⠿ Container twitter       Created                                                                         0.1s
Attaching to twitter

但是在另一个终端使用 docker ps -a 查看,是 running

╰─➤  docker ps -a                                                                                         130 ↵
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS                    PORTS                               NAMES
e077317b374f   jiuzhang/twitter        "python manage.py ru…"   35 seconds ago   Up 34 seconds             0.0.0.0:8000->8000/tcp              twitter

但是使用 docker logs twitter 却是什么都没有

╰─➤  docker logs twitter
╭─ponponon@MBP13ARM ~/Desktop/code/me/free_workspace/twiter  
╰─➤ 

共有1个答案

宓毅庵
2023-04-27

使用关键字: "django docker-compose python manage.py runserver Attaching to" 去谷歌搜索,搜索到下面的词条:

https://stackoverflow.com/questions/50229873/unable-to-runserver-with-docker-compose-up

图片.png

加上 tty: true 就行


然后,我发现

docker-compose up 的 tty 默认是false

docker run 的时候,如何加上了 -it, 那么 tty 是 true;没有没有加 -it,tty 就是 false

 类似资料:
  • 在移动视图中,当我尝试垂直滚动时,网页被卡住。在中,我有

  • 问题内容: 每当我执行 我看到状态为“ UP”的容器。如果我做 我将看到更多详细信息,但状态相同。这两个命令之间有什么区别吗? 问题答案: docker-compose start (https://docs.docker.com/compose/reference/start/) 启动服务的现有容器。 docker-compose up (https://docs.docker.com/comp

  • 问题内容: 根据Django 2.0发行说明, Django 2.0及更高版本将仅支持python 3,从而使1.11.X成为支持python 2的最后一个发行系列。 请参阅发行说明页面中的报价: Django 2.0支持Python 3.4、3.5和3.6。我们强烈建议并仅正式支持每个系列的最新版本。 Django 1.11.x系列是最后一个支持Python 2.7的系列。 但是,在运行时,将安

  • 问题内容: 并且似乎正在与同一个dockerFile进行交互,这两个工具之间有什么区别? 问题答案: 在一个码头工人的发动机管理单个容器时,CLI使用。这是访问docker daemon api的客户端命令行。 该CLI可以用于管理多容器应用程序。它还会将您在cli 上输入的许多选项移到文件中,以方便重用。它在与所使用的同一docker api上充当前端“脚本” ,因此您可以使用命令和许多shel

  • 我有一个docker-compose文件: 但我想知道为什么不和Docker一起工作--组成。

  • 我试图用Burrow来监测Kafka的消费滞后。我可以从HTTPendpoint获得结果,但这只是一段时间。大约一分钟后,我无法得到任何回应从洞穴和端口8000关闭。 我有我的zookeeper安装在同一个主机与kafka实例。这里是我的配置和错误日志。 我的配置有问题吗? 多谢了。