Django “Docker compose教程不工作”;python:can';t打开文件';manage.py“;
我正在运行简单的Docker compose示例,如图所示 以下是Dockerfile:Django “Docker compose教程不工作”;python:can';t打开文件';manage.py“;,django,docker-compose,Django,Docker Compose,我正在运行简单的Docker compose示例,如图所示 以下是Dockerfile: FROM python:2.7 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: d
FROM python:2.7
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:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
当我尝试使用docker compose启动示例时,它给出了以下信息:
alex@universe:~/projects/testcompose$ docker-compose up
testcompose_db_1 is up-to-date
Recreating testcompose_web_1
Attaching to testcompose_db_1, testcompose_web_1
web_1 | python: can't open file 'manage.py': [Errno 2] No such file or directory
db_1 | The files belonging to this da...
可能教程不是最新的,所以如果您知道答案,请写在这里。如果您使用的是
docker machine
或docker Toolbox,这可能是因为项目不在/Users
目录下。在VM中,只有该目录可用作共享文件夹
您可以从配置中删除
卷:
,或将另一个共享文件夹添加到Virtualbox。正确,已正确生成项目文件结构。
Django始终具有我的项目文件夹/my site/my site
文件结构
要使用docker compose,只需将以下文件上移到我的项目文件夹/my site/
Dockerfile
docker-compose.yml
requirements.txt
my project folder/my site/
已包含manage.py
文件(如果不是这种情况,则说明有问题)
此时,请确保my project folder/
仅包含
my site/
文件夹,其他什么都没有
一切设置正确后,只需向上移动到我的项目文件夹/my site/my site
执行命令docker compose up
它将建造所需的一切。
第二次执行命令docker compose up
,您就有了它
如果需要,不要忘记检查允许的主机并在settings.py
文件中添加“0.0.0.0”
就这些。我带着同样的错误信息来到这里,结果我只是忘记在下面命令的末尾添加点
:
docker compose运行web django-admin.py startproject composeexample。
在学习docker基础教程时,我也遇到了同样的问题
所以,基本上我在同一个阶段,我也是docker的noob。我的方法是首先使用下面的命令来标识映像目录中的内容,确保您的django项目在该目录中可用
docker run -it container_name sh
之后,当运行docker compose up命令时,将出现此错误
web_1 | python:无法打开文件“/proto/manage.py”:[Errno 2]否
这样的文件或目录
docker run -it container_name sh
因此,docker基本上是在执行Dockerfile中的指令,并在不包含manage.py文件的代码文件夹中执行python manage.py runserver命令
因此,添加这一行,它会将您导航到包含manage.py文件的文件夹
CMD . /code/composeexample/
现在用
docker-compose build
现在运行下面的命令,就可以开始了
docker-compose up
您是否已运行此命令:
docker compose运行web django-admin.py startproject compose示例。
在文件夹中使用docker compose.yml
?它实际上会在Docker卷中创建manage.py
和所有与Django相关的文件。是的,我做到了。实际上,问题是在运行此命令后,项目结构不正确。它创建了其他composeexample文件夹,其中包含project和manage.py文件。将所有文件移动一级后,一切都按预期工作。@dhephin感谢您的回答!我没有在Ubuntu上使用docker机器。问题在于在容器内启动Django项目后没有正确的项目结构。