无法使用docker-compose运行服务器

ato*_*era 4 python django docker docker-compose

我在开发时使用Docker.我注意到我无法使用docker-compose up命令启动dev服务器,但可以使用docker-compose run

这是我的Dockerfile:

FROM python:3.6

WORKDIR /opt/lib
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install -r requirements.txt

WORKDIR /opt/web
Run Code Online (Sandbox Code Playgroud)

这是docker-compose.yaml

version: '2'
services:
  web:
    build: ./web/
    working_dir: /opt/web
    ports:
      - "3000:3000"
    volumes:
      - ./web:/opt/web
    user: 1000:1000
    depends_on:
      - database
    env_file: env
    command: python manage.py runserver 0.0.0.0:3000

  database:
    image: mdillon/postgis:9.6
    ports:
      - "5432:5432"
    volumes:
      - ./database/data:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行docker-compose up,只启动数据库: 在此输入图像描述

但随着docker-compose run服务器启动正常: 在此输入图像描述

如果我将docker-compose.yml> services> web>命令更改为/usr/local/bin/gunicorn project.wsgi:application -w 4 -b :3000它也可以正常工作,但我需要在文件更改时自动重新启动 在此输入图像描述

我使用Docker for MacOS Version 18.03.1-ce-mac65 (24312), Django==1.10

我试图将其重置为出厂设置,这没有帮助.

你能帮帮我吗?

编辑1:

其他manage.py命令,如迁移,工作正常

Maz*_*Tov 7

./manage.py runserver需要来分配伪TTY.您可以通过这种方式将其传递给docker-compose.yml

services:
  web:
    tty: true
    command: ./manage.py runserver 0:3000
Run Code Online (Sandbox Code Playgroud)