python - 无法使用 docker-compose up 运行服务器
问题描述
我在开发时使用 Docker。我注意到我无法使用docker-compose up
命令启动开发服务器,但可以使用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
这是 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
现在,如果我运行docker-compose up
,只有数据库启动:
如果我将 docker-compose.yml > services > web > command 更改为/usr/local/bin/gunicorn project.wsgi:application -w 4 -b :3000
它也可以正常工作,但我需要在文件更改时自动重启
我在 MacOS 上使用 Docker Version 18.03.1-ce-mac65 (24312)
,
Django==1.10
我试图将其重置为出厂设置,但这没有帮助。
你能帮我解决这个问题吗?
编辑1:
其他 manage.py 命令,如migrate,工作正常
解决方案
需要./manage.py runserver
分配一个伪 TTY。您可以通过这种方式将其传递给 docker-compose.yml
services:
web:
tty: true
command: ./manage.py runserver 0:3000
推荐阅读
- javascript - 如何使用 React Router 返回重定向?
- mongodb - 在 MongoDB 中使用复合索引对 $regex 过滤器进行排序
- android - 使用复合可绘制对象测量 TextView 返回错误值
- laravel - metronic 数据表 6*4 用户图像网格
- sql - MsSQL 贷记、借记和余额
- php - 是否可以使用 redis 或 HTMLPurifier 的替代缓存?
- python - Django,在另一个结果中包含一个模板 TemplateDoesNotExist at /
- python - 在 Python 中处理来自 API 调用的多个 JSON
- performance - JMeter 中的 OS 采样器 V/S HTTP 请求采样器
- python - 如何在 Pandas MultiIndex Dataframes 中获取和设置单个值