https://scrapbox.io/shimizukawa/127.0.0.1_%E3%81%A8_0.0.0.0_%E3%81%AE%E9%81%95%E3%81%84 https://stackoverflow.com/questions/23639085/django-change-default-runserver-port
Ich habe Django in einem Docker-Container ausgeführt und versucht, vom Host-PC aus auf den Server zuzugreifen. Obwohl ich Port Foward ausgeführt habe, konnte ich vom Host-Computer aus nicht nur mit dem normalen Befehl "python manage.py runserver" auf den Server zugreifen. Django setzt die IP-Adresse standardmäßig auf "127.0.0.1". Dies ist jedoch die IP-Adresse der lokalen Loopback-Schnittstelle. Hierbei handelt es sich um die IP-Adresse, die virtuell im Computer erstellt wurde. Greifen Sie daher von außerhalb des Containers auf 127.0.0.1 zu. Selbst wenn Sie es versuchen, gibt es so etwas nicht. Wenn Sie andererseits den Server mit Rails usw. starten, bindet die standardmäßig zugewiesene IP-Adresse (obwohl es sich nicht ausschließlich um eine IP-Adresse handelt) "0.0.0.0" den für alle Internetschnittstellen angegebenen Port. Werde dir geben. Um diese Bindung durchzuführen, können Sie den Befehl "python manage.py runserver 0.0.0.0" ausführen. Es ist jedoch ärgerlich, bei jedem Start des Servers die letzte Version 0.0.0.0 zu drücken, also standardmäßig "127.0.0.1" Ich habe mich stattdessen für "0.0.0.0" entschieden
Wenn Sie Django in Ihrer lokalen Umgebung installiert haben und den Server von dort aus ausführen
/usr/local/lib/python3.8/site-packages/django/core/management/commands
Irgendwo in runserver.py
in
Setzen Sie default_addr
auf 0.0.0.0
.
runserver.py
default_addr = '0.0.0.0'
Speichern Sie einfach damit
https://github.com/kshuta/Django_2.0_Docker Dieses Repository enthält die Docker-Datei, die für die Verwendung von Django 2 unter Docker erstellt wurde, und die zugehörigen Dateien. Wenn Sie Schwierigkeiten beim Lesen haben, versuchen Sie, eine Django-App zu erstellen, indem Sie das oben genannte Repository herunterladen oder als Vorlage verwenden. Die IP-Adresse ist standardmäßig "0.0.0.0". Bitte lesen Sie den Inhalt von Readme und Dockerfile sorgfältig durch, bevor Sie es verwenden.
Es ist erst einen Monat her, seit ich Docker verwendet habe, daher bin ich mir nicht sicher, ob dies der richtige Weg ist. Aber es macht die Arbeit also warum nicht.
** Holen Sie sich runserver.py von irgendwoher. ** **. Wenn Sie "Django 2 Quellcode" usw. googeln, ist der Quellcode von Django auf Github, also Wechseln Sie in das Verzeichnis "django / core / management / command", laden Sie runserver.py herunter und bringen Sie die Datei in das Verzeichnis, in dem sich die Docker-Datei befindet.
** COPY-Notation in Dockefile hinzufügen ** Im vorherigen Schritt sollte runserver.py im Docker-Kontext platziert werden (möglicherweise ist die Verwendung des Docker-Kontexts falsch). Fügen Sie daher die folgende Notation in die Docker-Datei ein.
Dockerfile
WORKDIR /usr/local/lib/python3.8/site-packages/django/core/management/commands
COPY runserver.py /usr/local/lib/python3.8/site-packages/django/core/management/commands/
WORKDIR /
Ändern Sie das letzte WORKDIR in Ihr Lieblingsverzeichnis. Es muss nicht das Schlimmste sein.
Sie haben jetzt die Standard-IP-Adresse in 0.0.0.0 geändert! Versuchen Sie nun, "python manage.py runserver" über die Shell im Container auszuführen. Wenn Sie vom Host-Computer aus fest auf localhost: 8000
zugreifen, wird die von Ihnen erstellte Seite angezeigt.
Recommended Posts