【问题标题】:Docker is running but cannot access local development server [Django]Docker 正在运行但无法访问本地开发服务器 [Django]
【发布时间】:2020-05-02 15:43:31
【问题描述】:

我无法从 locahost 访问 Django 的欢迎页面。

我已经尝试了很多答案,但似乎没有任何效果。我做了以下事情:

  • 将我的端口从 8000 更改为 9000exposed 他们。我有来自 Dockerfile 的 CMD

  • docker-compose.yml 文件上暴露了几个端口,但没有任何作用。

  • 修改后多次运行docker build .

  • ALLOWED_HOSTS 更改为'*'['*']

非常感谢您的帮助。

配置:

Docker version 19.03.1, build 74b1e89e8a

OS: Windows 10 Home

Docker Toolbox

Dockerfile:

FROM python:3.7-alpine

ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1

COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

RUN apk update && apk add libpq
RUN apk add --virtual .build-deps gcc python3-dev musl-dev postgresql-dev
RUN pip install psycopg2
RUN apk del .build-deps

RUN mkdir /myapp
WORKDIR /myapp
COPY ./myapp/myapp

RUN adduser -D user
USER user

docker-compose.yml:

version: "3"

services:
  db:
    image: postgres
  web:
    build: .
    command: sh -c "python manage.py collectstatic --no-input && python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:9000"
    environment:
      - DB_NAME=postgres
      - DB_USER=postgres
      - DB_PASS=postgres
      - DB_HOST=db
      - DB_PORT=5432
      - DEBUG=${DEBUG}
      - SECRET_KEY=${SECRET_KEY}
    volumes:
      - ./myapp:/myapp
    ports:
      - "9000:9000"
    depends_on:
      - db

【问题讨论】:

    标签: django windows docker yaml


    【解决方案1】:

    您的 dockerfile 似乎缺少 EXPOSE 命令。最后将其添加到您的 dockerfile

    EXPOSE 9000
    

    【讨论】:

    • 我做到了。没有任何改变
    【解决方案2】:

    确保您的主机上的端口9000 可用。

    【讨论】:

    • 我不明白,你能举个例子吗?
    【解决方案3】:

    如果您在 Windows 10 Home 上运行和/或使用 Docker Toolkit,请打开 Kitematic 并单击 Web 预览。这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      相关资源
      最近更新 更多