无法在Docker上运行django

时间:2019-08-31 13:52:59

标签: django docker docker-compose dockerfile

我正在docker上设置django服务器应用程序。 docker可以很好地运行容器,但是docker无法接收运行django的命令。

我已经看过很少的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。

3 个答案:

答案 0 :(得分:0)

我在您的实施中看到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. a。如果您使用撰写文件,则应从CMD中删除Dockerfile

答案 1 :(得分:0)

您需要在 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 :(得分:0)

https://docs.docker.com/samples/django/。 此链接包含使用 django 的 docker 设置。请在官方文档中查看一次,