django-cookiecutter项目docker-compose run终端无法输入问题求助
我之前也碰到过完全一样的状况!这其实是Docker容器交互模式的问题——默认情况下用docker-compose run启动容器时,没有给它分配可交互的终端环境,所以就算出现了提示符,你的输入也没法传递到容器里。
直接给你两个实用的解决办法:
临时方案:命令行追加交互参数
给docker-compose run命令加上-it(这是--interactive和--tty的简写组合)参数,就能让容器和本地终端建立交互连接:
- 创建超级用户的修正命令:
docker-compose -f production.yml run --rm -it django python manage.py createsuperuser
- 进入shell的修正命令:
docker-compose -f production.yml run --rm -it django python manage.py shell
永久方案:修改Compose配置文件
如果你不想每次敲命令都手动加参数,可以直接在production.yml的django服务配置里加上两行,让服务默认开启交互终端:
services: django: # 保留你原有的其他配置(比如build、environment、volumes等) stdin_open: true # 保持容器标准输入通道打开 tty: true # 为容器分配伪终端
之后再用docker-compose run执行需要交互的命令,就不用额外加-it参数了。
内容的提问来源于stack exchange,提问作者squirtgun
相关产品推荐
相关产品推荐

