docker-compose 和 django 出错
Posted
技术标签:
【中文标题】docker-compose 和 django 出错【英文标题】:error with docker-compose and django 【发布时间】:2015-12-30 04:22:59 【问题描述】:我正在尝试开始使用 docker 和 django。我按照 docker-compose 的指示创建了一个带有简单 requirements.txt 的图像。
我现在想进一步构建我的应用程序并添加模板和实际代码。
1) 我在主机上安装了一些模块并将它们添加到 requirements.txt 文件中
2)我(再次)运行 docker-compose run web django-admin.py startproject exampleproject。我所有的新要求都已下载,但随后出现此错误:
/code/manage.py 已经存在,将项目或应用程序覆盖到现有目录中不会替换冲突文件
我正在使用确切的 Dockerfile 和 docker-compose.yml,如下所示: http://docs.docker.com/compose/django/
在开发应用程序时,我应该如何使用新模板/视图 &c 和新模块更新容器/图像?
我是不是用错了 docker?
谢谢。
【问题讨论】:
在再次尝试运行 docker-compose 之前您是否删除了容器? 我需要从我拥有项目的目录中删除 manage.py - 我认为它只会根据新要求进行更新,但我认为如果我想这样做,我将不得不重新启动项目重新来过。我想一旦你开始一个项目,你就会在容器本身上安装新的需求并将它们添加到 requirements.txt 以便下次从头开始构建项目时 遵循相同的教程:我正在运行 docker insidew windows liux 子系统,并且此命令docker-compose run web django-admin startproject composeexample .
不会第一次在同一文件夹中创建任何内容。我第二次收到这个CommandError: /code/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files
【参考方案1】:
我需要从我的项目所在的目录(docker-compose.yml 所在的目录)中删除 manage.py。
我想一旦你开始一个项目,你就会在容器本身上安装新的需求,并将它们添加到 requirements.txt 中,以便下次从头开始构建项目时。
【讨论】:
【参考方案2】:很抱歉添加晚了,但我认为它可能会对某人有所帮助。我也遇到了同样的问题,尽管从我的 .yml 和 Dockerfile 所在的文件夹中删除了 manage.py ,但它给了我同样的错误。
我不知道它在哪里创建了包含 manage.py 文件的代码目录。但我目前通过更改 yml 文件中的服务名称并使用新的服务名称重新启动项目来解决它。
docker-compose run newservicenm django-admin.py startproject projectname directoryname
这是一个新容器!
【讨论】:
以上是关于docker-compose 和 django 出错的主要内容,如果未能解决你的问题,请参考以下文章
通过主管和 docker-compose 从 django 输出彩色日志
如何使用 Pycharm 逐步完成使用 Django 和 docker-compose 的测试?
通过 Nginx (Django/React/Nginx/Docker-Compose) 提供 Django 媒体文件
python测试开发django-180.docker-compose部署django+mysql环境