Docker正在运行,但无法访问本地开发服务器[Django]

时间:2020-01-15 20:02:47

标签: django windows docker yaml

我无法从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

3 个答案:

答案 0 :(得分:0)

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

EXPOSE 9000

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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