我在使用 django cookiecutter 启动的项目时遇到了问题。
为了验证问题是否与我的项目无关,我正在一个空白的 django 千篇一律的项目上进行测试。
问题是当我运行时:
docker-compose -f production.yml run --rm django python manage.py createsuperuser
我收到提示,但无法在终端中输入。
当我运行时也是如此:
docker-compose -f production.yml run --rm django python manage.py shell
我收到外壳提示,但我无法键入。
该应用程序正在运行使用docker-machine create命令创建的DigitalOcean上的机器。
关于问题可能是什么以及如何调试它的任何想法?
要在 docker-compose 终端中启用键入,您需要指定终端会话在 docker-compose.yml
上是交互式的。因为默认情况下,docker 控制台不是交互式的。
stdin_open: true
tty: true
以下命令在 docker 容器内访问bash
。
docker-compose -f production.yml exec django bash
这将给你对 django 服务器容器的完全访问权限。在那里,你可以以完全的交互性运行所有正常的 django 命令。
创建超级用户
python manage.py createsuperuser
对于本地环境
docker-compose -f local.yml exec django bash