【问题标题】:django-cookiecutter, docker-compose run: can't type in terminaldjango-cookiecutter,docker-compose 运行:无法输入终端
【发布时间】:2018-04-18 17:05:52
【问题描述】:

我在使用 django cookiecutter 启动的项目时遇到问题。

为了验证问题不在于我的项目,我正在一个空白的 django cookiecutter 项目上进行测试。

问题是当我运行时:

docker-compose -f production.yml run --rm django python manage.py createsuperuser

我收到提示,但无法在终端输入。

我跑的时候也是这样:

docker-compose -f production.yml run --rm django python manage.py shell

我得到了 shell 提示,但我不能输入。

应用程序正在 DigitalOcean 上使用 docker-machine create 命令创建的机器上运行。

对问题可能是什么以及如何调试有什么想法?

【问题讨论】:

    标签: django docker docker-compose docker-machine cookiecutter-django


    【解决方案1】:

    要启用在 docker-compose 终端中输入,您需要在 docker-compose.yml 上指定终端会话是交互式的。因为默认情况下,docker 控制台是不交互的。

    stdin_open: true
    tty: true  
    

    【讨论】:

    • -i 和 -t 不是 docker-compose 的选项
    • 我的错,然后配置。
    【解决方案2】:

    bash 可以使用以下命令在 docker 容器内访问。

    docker-compose -f production.yml exec django bash
    

    这将使您可以完全访问 django 服务器的容器。 在那里,您可以运行所有具有完全交互性的普通 django 命令。

    创建超级用户

    python manage.py createsuperuser
    

    对于本地 ENV

    docker-compose -f local.yml exec django bash
    

    【讨论】:

      猜你喜欢
      • 2018-10-28
      • 1970-01-01
      • 2023-04-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 2022-09-05
      相关资源
      最近更新 更多