为什么使用 Django+ docker-compose 跑就会一直卡在 Attaching to ?
dockerfile
FROM python:3.10-busterRUN /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:8080Performing 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  
╰─➤ 
回答:
使用关键字: "django docker-compose python manage.py runserver Attaching to" 去谷歌搜索,搜索到下面的词条:
https://stackoverflow.com/questions/50229873/unable-to-runserver-with-docker-compose-up

加上 tty: true 就行
然后,我发现
docker-compose up 的 tty 默认是false
docker run 的时候,如何加上了 -it, 那么 tty 是 true;没有没有加 -it,tty 就是 false
以上是 为什么使用 Django+ docker-compose 跑就会一直卡在 Attaching to ? 的全部内容, 来源链接: utcz.com/p/938857.html

