Prz*_*icz 0 python django containers docker docker-compose
我正在尝试使用 docker 和 docker-compose 构建并运行 django 应用程序。\ndocker-compose build example_app并docker-compose run example_app运行时没有错误,但是当我转到http://127.0.0.1:8000/页面未打开时,我只是在浏览器中收到“页面不可用”错误。\ nHere 是我的 Dockeffile、docker-compose.yml 和项目结构
Dockerfile
\nFROM python:3.9-buster\n\nRUN mkdir app\nWORKDIR /app\nCOPY ./requirements.txt /app/requirements.txt\nCOPY ./requirements_dev.txt /app/requirements_dev.txt\nRUN pip install --upgrade pip\nRUN pip install -r /app/requirements.txt\nRun Code Online (Sandbox Code Playgroud)\ndocker-compose.yml
\nversion: '3'\n\nservices:\n example_app:\n image: example_app\n build:\n context: ../\n dockerfile: ./docker/Dockerfile\n command: bash -c "cd app_examples/drf_example && python manage.py runserver"\n volumes:\n - ..:/app\n ports:\n - 8000:8000\nRun Code Online (Sandbox Code Playgroud)\n项目结构:
\n\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x80\xe2\x94\x80app_examples/drf_example/\n \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80manage.py\n \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80api\n \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80drf_example\n\xe2\x94\x80\xe2\x94\x80requirements.txt\n\xe2\x94\x80\xe2\x94\x80requirements_dev.txt\n\xe2\x94\x80\xe2\x94\x80docker/\n \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80docker-compose.yml\n \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Dockerfile\nRun Code Online (Sandbox Code Playgroud)\n
默认情况下,Django 应用程序绑定到 127.0.0.1,这意味着它们只接受来自本地计算机的连接。在容器上下文中,本地计算机是容器,因此您的应用程序不会接受来自容器外部的连接。
要让它接受来自任何地方的连接,请将绑定地址添加到runserver命令中。在您的情况下,您可以将 docker-compose.yml 文件中的命令更改为
command: bash -c "cd app_examples/drf_example && python manage.py runserver 0.0.0.0:8000"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |