【问题标题】:Docker for windows10 run django fail: Can't open file 'manage.py': [Errno 2] No such file or directoryDocker for windows10运行django失败:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录
【发布时间】:2016-09-30 11:22:39
【问题描述】:

我刚刚启动了一个示例 django 应用程序。并使用 docker 运行它。我的 docker 镜像如下:

FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

我的 docker-compose.yml 文件:

version: '2'
services:
  django:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"

当我运行docker-compose up 命令时,它构建成功但运行command: python manage.py runserver 0.0.0.0:8000 失败,它抱怨python: can't open file 'manage.py': [Errno 2] No such file or directory

这是 docker for windows 中的错误吗?因为我只是关注 docker Quickstart: Docker Compose and Django的文档

感谢您的帮助!

【问题讨论】:

  • 您完成了教程的Create a Django projectConnect the database 部分吗?
  • 是的。我创建了 django 项目并在虚拟 python 环境中运行它。它运作良好。我只是使用 sqlite3 数据库。
  • 所以你确实执行了这一行? docker-compose run web django-admin.py startproject composeexample .
  • 我将服务名称“web”更改为“django”。我的项目是在主机中创建的,而不是使用 'docker-compose run web django-admin.py startproject'。
  • 我再次关注官方文档,使用docker-compose run web django-admin.py startproject composeexample .新建一个django项目。然后我使用docker-compose up 并且容器成功运行。但是我在当前目录中找不到 django 项目文件。另外,我们不能在docker容器中运行一个已经存在的django项目吗?

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


【解决方案1】:

我认为您要么错过了这一步:docker-compose run web django-admin.py startproject composeexample .,要么您使用的目录对运行 docker 的虚拟机不可用。

如果在您从 Compose 文件中删除 volumes: .:/code 时它可以工作,那么您就知道问题出在卷上。

我相信默认情况下只有用户主目录与 VM 共享,因此如果您在该树之外创建项目,您将无法访问卷中的文件。

【讨论】:

  • 非常感谢!这解决了我的问题。但是如果我不能将主机中的目录挂载到虚拟机,我怎么能在它们之间共享数据呢?他们有什么方法可以使 VM 可以访问主机上的文件吗?
  • 再次感谢!你救了我的命。根据您的分析,我在Docker official forum 中搜索答案。解决方案是我们应该在 docker 设置中启用主机共享驱动器到 docker 容器。
猜你喜欢
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 2017-12-11
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 2021-11-05
相关资源
最近更新 更多