Django веб-приложение Docker - невозможно подключиться - PullRequest
0 голосов
/ 23 апреля 2020

Я новичок в Django и Docker, и у меня возникла проблема с вводом сайта localhost: 8000. Я создал приложение django, и оно работает на моем локальном сервере, но я бы хотел докеризировать свое приложение. Поэтому я создал два файла: Dockerfile:

RUN python:3.6.7-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD ./ /code/
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

и docker -compose.yml

version: '3'

services:
  web:
    build: .
    command: python mysite/manage.py runserver 8000
    ports:
      - "8000:8000"

Мои следующие шаги:

docker built --tag django_docker:latest .

и:

docker run django_docker

Это открытый сервер, но когда я хочу открыть localhost: 8000 из своего браузера, я не могу из-за «Невозможно подключиться»

Где моя ошибка?

Подробнее о django приложении: проект из книги Python Cra sh Курс: Learning_log. Я хотел бы создать образ и поместить sh в концентратор docker, но я застрял. Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Попробуйте

обновить dockerfile

# Pull base image
FROM python:3.7

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set work directory
WORKDIR /code

# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system

# Copy project
COPY . /code/

обновить dockor-compose.yml

version: '3.7'

services:
  web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000

после обновления просто запустите одну команду в терминале

docker-compose up -d --build

чтобы остановить его, используйте

docker-compose down
1 голос
/ 23 апреля 2020

Вы используете файл docker-compose.yml, поэтому вам нужно использовать команду docker -compose для его запуска:

docker-compose up

Это все, что вам нужно, и вы можете прочитать больше об этом в официальный документы .

Чтобы запустить его без использования docker compose, тогда ваша команда docker должна быть:

docker run --publish 8000:8000 django_docker

Если вы хотите ограничить сайт должен быть доступен только на вашем локальном хосте, затем привязать к 127.0.0.1:

docker run --publish 127.0.0.1:8000:8000 django_docker
...