Ich habe das System vor einiger Zeit neu installiert, aber kein Backup erstellt, sodass alle Entwicklungsumgebungen auf meinem Computer weg waren. Der Gedanke an die Installation der Python-Umgebung und der Datenbank kann Kopfschmerzen bereiten und während des Installationsvorgangs können zahlreiche Fehler auftreten. Ich lerne gerade Docker. Löst das nicht einfach meine aktuellen Probleme? Darüber hinaus müssen Sie sich nicht nur dieses Mal, sondern auch in Zukunft keine Gedanken über die Neuinstallation des Systems machen. Solange Sie die Dockerfile- und Docker-Compose-Dateien haben, können Sie es problemlos mit einem Befehl ausführen, egal in welcher Umgebung Sie sich befinden. Bisher wurden Python-Entwicklungsumgebungen mit virtualenv oder Pipenv bereitgestellt. Nachdem ich dieses Mal Docker verwendet habe, fand ich, dass Docker praktischer ist. Lassen Sie es mich unten ausführlich vorstellen. Docker-Datei VON python:3.6.8 ENV PYTHONUNBUFFERED 1 RUN mkdir -p /code KOPIEREN ./requirements.txt /code ARBEITSVERZEICHNIS /code Führen Sie den Befehl sed -i "s/archive.ubuntu./mirrors.aliyun./g" /etc/apt/sources.list aus. Führen Sie den Befehl sed -i "s/deb.debian.org/mirrors.aliyun.com/g" /etc/apt/sources.list aus. Führen Sie apt-get clean && apt-get -y update && \ aus. apt-get -y installiere libsasl2-dev python-dev libldap2-dev libssl-dev libsnmp-dev Führen Sie pip3 install --index-url https://mirrors.aliyun.com/pypi/simple/ --no-cache-dir -r requirements.txt aus. KOPIEREN ./* /code/ Verwenden Sie Dockerfile, um das Image zu erstellen, die Python-Version ist 3.6.8, und kopieren Sie den Quellcode in das Verzeichnis /code im Container. Docker-Compose Version: '3' Leistungen: Webseite: bauen: Kontext: . Dockerdatei: Dockerdatei Bild: Web Containername: Web Hostname: Web Neustart: immer Befehl: python /code/manage.py runserver 0.0.0.0:8000 Bände: - .:/Web Häfen: - "8000:8000" hängt ab von: -mysql MySQL: Bild: MySQL Containername: MySQL Hostname: MySQL Neustart: immer Befehl: --default-authentication-plugin=mysql_native_password --mysqlx=0 Häfen: -3306:3306 Bände: - ./db:/var/lib/mysql Umfeld: -MYSQL_HOST=lokaler Host -MYSQL_PORT=3306 -MYSQL_DATABASE=Entwickler -MYSQL_USER=Entwickler -MYSQL_PASSWORD=123456 -MYSQL_ROOT_PASSWORD=123456 Verwenden Sie Docker-Compose, um die Container zu orchestrieren und insgesamt zwei Dienste zu starten. Der Webdienst ist der Django-Hintergrunddienst und MySQL ist der Datenbankdienst. Dabei sind drei Punkte zu beachten:
Anforderungen Django==2.2.11 mysqlclient==1.4.6 Starten Sie das von Django benötigte Pip-Paket. Die Django-Version muss mindestens 2.0 sein, sonst wird ein Fehler gemeldet. Django-Einstellungen DATENBANKEN = { 'Standard': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'Entwickler', 'BENUTZER': 'dev', 'PASSWORT': '123456', 'HOST': 'mysql', 'HAFEN': '3306' } } Konfigurieren Sie Datenbankinformationen in der Django-Einstellungsdatei. Der Inhalt muss mit dem in Docker-Compose übereinstimmen. Zu beachten ist, dass HOST als Dienstname in Docker-Compose konfiguriert werden muss, in meinem Fall ist es MySQL. Wenn Sie es auf andere Werte konfigurieren, beispielsweise localhost oder 127.0.0.1, wird ein Fehler gemeldet. Da Docker beim Start ein lokales Netzwerk einrichtet, kann es MySQL in den Container des entsprechenden Dienstes auflösen, und der entsprechende Dienst befindet sich nicht auf dem lokalen Host. Laufen Verwenden Sie den folgenden Befehl, um einen Spiegel zu erstellen. $ docker-compose -f ./docker-compose.yml erstellen Sie können den vorherigen Schritt auch überspringen und den Dienst mit dem folgenden Befehl direkt starten. Wenn kein Image vorhanden ist, wird zuerst ein Image erstellt und dann der Dienst gestartet. $ docker-compose -f ./docker-compose.yml nach oben Fehlerbehebung Während des Bereitstellungsprozesses können die folgenden Fehler auftreten, die grundsätzlich durch Konfigurationsfehler verursacht werden. Wenn dies passiert, überprüfen Sie die Konfiguration sorgfältig. Solange sie mit der im Artikel angegebenen übereinstimmt, gibt es kein Problem.
Ich bin auch auf ein schwierigeres Problem gestoßen:
Ich dachte, mein Passwort sei falsch eingestellt und habe lange nachgeforscht, konnte aber kein Problem finden. Später habe ich online eine Erklärung gefunden und beschlossen, es einfach zu ignorieren.
Referenzdokumente: http://fusionblender.net/django-and-mysql-8-using-docker/ Dies ist das Ende dieses Artikels zur Verwendung von Docker zum Bereitstellen der Django+MySQL8-Entwicklungsumgebung. Weitere relevante Inhalte zur Docker-Bereitstellung von Django+MySQL8 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispiel zur Erläuterung der Größe einer MySQL-Statistiktabelle
>>: Wo werden MySQL-Daten gespeichert?
Detailliertes Beispiel einer MySQL-Austauschparti...
Inhaltsverzeichnis 1. Einleitung 2. Installieren ...
MySQL 5.7.8 führte das JSON-Feld ein. Dieser Feld...
Inhaltsverzeichnis 1. Überprüfen Sie, ob die Dock...
Vorwort Wenn Sie sich auf die Stelle eines Betrie...
Über JS, CSS CSS: Stylesheet oben Vermeiden Sie C...
vuex-persistenter Zustand Kernprinzip: Alle Vuex-...
Inhaltsverzeichnis Backend: Rails API-Teil Front-...
Der heutige Artikel stellt hauptsächlich den Neul...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Vorwort 1. Die Bedeutung der K...
Das Unternehmen hat vor Kurzem einige CCFA-Aktivi...
Inhaltsverzeichnis Vorwort 1. Binärer Baum 1.1. D...
Inhaltsverzeichnis Vorwort Deskriptoren Detaillie...
Es gibt viele Datenbankverwaltungstools für MySQL...