Docker-compose 教程不起作用“python:无法打开文件'manage.py”

Ale*_*kov 5 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/
Run Code Online (Sandbox Code Playgroud)

这是 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
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 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...
Run Code Online (Sandbox Code Playgroud)

教程可能不是最新的,所以如果您知道答案,请写在这里。

Fer*_*ime 4

是的,项目文件结构已正确生成。Django 总是有一个my-project-folder/my-site/my-site文件结构。

要使其与 docker-compose 一起使用,您只需将以下文件移至my-project-folder/my-site/

Dockerfile
docker-compose.yml
requirements.txt
Run Code Online (Sandbox Code Playgroud)

my-project-folder/my-site/已经包含manage.py文件(如果不是这种情况则有问题)

此时请确保my-project-folder/仅包含 my-site/文件夹而没有其他内容。

一旦一切设置正确,只需向上my-project-folder/my-site/my-site 执行命令,docker-compose up 它将构建所需的一切。执行命令docker-compose up就可以了。

不要忘记检查允许的主机并settings.py在需要时在文件中添加“0.0.0.0”。

就这样。