简体   繁体   English

Docker 映像为 Django 运行,但无法访问开发服务器 url

[英]Docker image ran for Django but cannot access dev server url

Working on containerizing my server.致力于容器化我的服务器。 I believe I successfully run build, when I run docker-compose my development server appears to run, but when I try to visit the associated dev server URL:我相信我成功运行了构建,当我运行 docker-compose 时,我的开发服务器似乎正在运行,但是当我尝试访问关联的开发服务器 URL 时:

http://0.0.0.0:8000/

However, I get a page with the error:但是,我得到一个包含错误的页面:

This site can’t be reachedThe webpage at http://0.0.0.0:8000/ might be temporarily down or it may have moved permanently to a new web address.

These are the settings on my Dockerfile:这些是我的 Dockerfile 上的设置:

FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR C:/Users/15512/Desktop/django-project/peerplatform
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . ./
EXPOSE 8000
CMD ["python", "./manage.py", "runserver", "0.0.0.0:8000", "--settings=signup.settings"]

This is my docker-compose.yml file:这是我docker-compose.yml文件:

version: "3.8"
services:
  redis:
    restart: always
    image: redis:latest
    ports:
      - "49153:6379"
  pairprogramming_be:
    restart: always
    depends_on:
      - redis
    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    env_file:
      - ./signup/.env
      - ./payments/.env
      - ./.env
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - "8000:8001"
    container_name: "pairprogramming_be"
    volumes:
      - "C:/Users/15512/Desktop/django-project/peerplatform://pairprogramming_be"
    working_dir:
      "/C:/Users/15512/Desktop/django-project/peerplatform"

This is the .env file:这是 .env 文件:

DEBUG=1
DJANGO_ALLOWED_HOSTS=0.0.0.0

FYI: the redis image runs successfully.仅供参考:redis 映像运行成功。 This is what I have tried:这是我尝试过的:

  • I tried changing the allowed hosts to localhost and 127.0.0.0.1我尝试将允许的主机更改为 localhost 和 127.0.0.0.1
  • I tried running the command python manage.py runserver and eventually added 0.0.0.0:8000我尝试运行命令python manage.py runserver并最终添加了0.0.0.0:8000
  • When I run docker inspect --format '{{ .NetworkSettings.IPAddress }} pairprogramming_be I get a blank response/my docker container doesn't appear to have an IP Address当我运行docker inspect --format '{{ .NetworkSettings.IPAddress }} pairprogramming_be我得到一个空白响应/我的 docker 容器似乎没有 IP 地址

where is the 8001 port taken from? 8001端口取自哪里? this is the internal (expected) listening port.这是内部(预期的)监听端口。 Since you set your application (inside docker) to listen on 8000 , you should map it from 8000 to anything else..由于您将应用程序(在 docker 内部)设置为侦听8000 ,因此您应该将其从8000映射到其他任何内容..

just change compose to:只需将撰写更改为:

ports:
  - "8000:8000"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM