【发布时间】:2018-05-08 09:03:32
【问题描述】:
我在开发时使用 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 run 服务器可以正常启动:
如果我将 docker-compose.yml > services > web > 命令更改为 /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,工作正常
【问题讨论】:
-
python:3.6 中的 ENTRYPOINT 是 python 而不是 shell(或 bash),所以你不必再次运行 python,我想你可以试试
./manage.py runserver 0.0.0.0:3000 -
@MazelTov 是的,可能是。但这无济于事,无论如何
-
docker-compose up web的输出是什么? -
@MazelTov 在
Attaching to mein-dach-web_web_1之后什么都没有。似乎它只是挂起。docker exec <container id> ps输出:PID TTY TIME CMD 1 ? 00:00:00 蟒蛇 51 ? 00:00:02蟒蛇99? 00:00:00 ps
标签: python django docker docker-compose