Развертывание Django с помощью Nginx Docker Container - PullRequest
0 голосов
/ 10 июля 2019

Ситуация: У меня есть приложение Django, которое я хочу развернуть, инструменты, которые я использую для этого, - Nginx, Gunicorn, и все они находятся внутри контейнера докера, используяDocker Desktop.

Проблема: Я могу просматривать приложение django локально, используя IP-адрес моего докера, IP-адрес моего компьютера и Loopback IP.Однако, когда я пытаюсь получить к нему доступ с моего ноутбука (другой компьютер, подключенный к тому же Wi-Fi), я не могу получить к нему доступ.

Моя машина: Windows 10, я уже включил выставление порта 80 во входящем и исходящем брандмауэре Windows.

Выполненные шаги: Я пытался сделать python -m http.server 80 на моей машине, и он работает отлично, поэтому я уверен, что есть что-то, что можно сделать на моем Hyper-Vрабочий стол docker или, возможно, конфигурация nginx

Мой файл docker-compose

version: '3'

services:

  dashboard:
    build: .
    volumes:
      - .:/opt/services/dashboard/src
      - static_volume:/opt/services/dashboard/src/static
    networks:  # <-- here
      - nginx_network

  nginx:
    image: nginx:1.13
    ports:
      - 0.0.0.0:80:80
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - static_volume:/opt/services/dashboard/src/static
    depends_on:
      - dashboard
    networks:  # <-- here
      - nginx_network

networks:  # <-- and here
  nginx_network:
    driver: bridge

volumes:
  static_volume:  # <-- declare the static volume

Мой файл dockerfile

# start from an official image
FROM python:3.6

# arbitrary location choice: you can change the directory
RUN mkdir -p /opt/services/dashboard/src
WORKDIR /opt/services/dashboard/src

# install our two dependencies
RUN pip install gunicorn django requests jira python-dateutil

# copy our project code
COPY . /opt/services/dashboard/src

# expose the port 80
EXPOSE 80

# define the default command to run when starting the container
CMD ["gunicorn", "--bind", ":80", "dashboard.wsgi:application"]

Мой файл конфигурации nginx

# first we declare our upstream server, which is our Gunicorn application
upstream dashboard_server {
    # docker will automatically resolve this to the correct address
    # because we use the same name as the service: "djangoapp"
    server dashboard:80;
}

# now we declare our main server
server {

    listen 80;
    server_name localhost;

    location / {
        # everything is passed to Gunicorn
        proxy_pass http://dashboard_server;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location /static/ {
        alias /opt/services/dashboard/src/static/;
    }
}

Вот изображение моей структуры папок. Изображение структуры папок

ВОПРОС: Как по крайней мере сделать так, чтобы его можно было просматривать на моем ноутбуке, подключенном через тот же Wi-Fi, что и настольный компьютер?Я попытался получить доступ к нему, используя IP-адрес моей машины.

1 Ответ

0 голосов
/ 24 июля 2019

Перезапустил коммутатор роутера и он отлично заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...