【问题标题】:How to run Django on Docker container如何在 Docker 容器上运行 Django
【发布时间】:2019-08-31 13:52:59
【问题描述】:

我正在 docker 上设置一个 django 服务器应用程序。 docker 运行容器很好,但是运行 django 的命令没有被 docker 接受。

我已经浏览了一些 youtube 视频,但没有一个对我有用

Dockerfile

FROM python:3.6-stretch

MAINTAINER ***

ENV PYTHONBUFFERED 1

COPY ./requirements.txt /requirements.txt

RUN pip install -r /requirements.txt

RUN mkdir /specfolder
WORKDIR /specfolder
COPY ./myfolder /specfolder

EXPOSE 8000

CMD ["python", "manage.py runserver"]

我尝试将命令放在 docker-compose.yml 文件下

commands: sh -c "python manager.py runserver"

但他们都没有工作

docker-compose.yml 文件

version: "3"

services:
myapp:
    build:
        context: .
    ports:
        - "8000:8000"
    volumes:
        - ./myfolder:/specfolder

requriements.txt

django==2.2.4
pandas
xlrd
xlsxwriter

截至目前,在运动学下,我得到了 python shell

Type "help", "copyright", "credits" or "license" for more information.
>>> 2019-08-31T13:34:51.844192800Z Python 3.6.9 (default, Aug 14 2019, 
13:02:21) 
[GCC 6.3.0 20170516] on linux

无法在浏览器中访问 127.0.0.1:8000/myapp/login。

【问题讨论】:

  • 你怎么知道它不起作用?你看到任何错误信息了吗?

标签: django docker docker-compose dockerfile


【解决方案1】:

您需要在 runserver 命令中进行更改。 改成

python manage.py runserver 0.0.0.0:8000

你的 Dockerfile 会是这样的

# other command
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

如果您使用的是 Dockerfile 或 docker-compose,请进行相应的更改。

【讨论】:

    【解决方案2】:

    我在您的实施中发现了 2 个问题。

    1. Dockerfile 你有CMD ["python", "manage.py runserver"]。应该是CMD ["python", "manage.py", "runserver"]

    2. 在撰写文件中commands: sh -c "python manager.py runserver" 应该是commands: python manager.py runserver

      1. 一个。如果您使用撰写文件,则应从 Dockerfile 中删除 CMD

    【讨论】:

    • 仍然没有用,当我访问 localhost:8000 时它显示“无法访问此站点”页面
    • 现在我可以运行应用程序,但无法通过浏览器访问它
    • 使用 StatReloader 监视文件更改 正在执行系统检查... 系统检查未发现任何问题(0 静音)。您有 17 个未应用的迁移。在您为应用程序应用迁移之前,您的项目可能无法正常工作:admin、auth、contenttypes、sessions。运行“python manage.py migrate”以应用它们。 2019 年 9 月 3 日 - 09:02:55 Django 版本 2.2.4,使用设置 'myproject.settings' 在 0.0.0.0:8000 启动开发服务器 使用 CONTROL-C 退出服务器。
    • 我已通过 composer 文件更改为:` version: '3' services: web: build: 。卷:- .:/myproject 端口:-“8000:8000”`
    猜你喜欢
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    相关资源
    最近更新 更多