Dieser Artikel ist ** Teil 2 ** der Artikel zu "Erfahren Sie, wie Sie Docker durch Erstellen der Umgebung von Django + MySQL verwenden".
In diesem Artikel werden wir überlegen, eine Docker-Datei zu schreiben, um ein Docker-Image für Django zu erstellen.
Für ** Docker-Image ** ist es wie (nur als "Image in meinem Kopf") ** ein kleiner dedizierter Computer zum Ausführen von Projekten, der auf einem vom Host-Computer unabhängigen Betriebssystem ausgeführt wird ** Ich fange es.
Entwerfen Sie das offiziell vorbereitete Python-Bild für das Django-Projekt anhand der Beschreibung in der Docker-Datei. Die Beschreibung selbst entspricht fast der Beschreibung im offiziellen Dokument. Hier werden wir die Bedeutung der Beschreibung berücksichtigen, damit wir sie in Zukunft nach Bedarf entwerfen und anpassen können.
Außerdem gehen wir davon aus, dass die Installation von Docker usw. bereits abgeschlossen ist.
** Dockerfile
wird direkt im Verzeichnis des erstellten Projekts [Letztes Mal] erstellt (https://qiita.com/toffe_hy/items/8c62f2bc7b14f1ce2ae0). ** ** **
Zunächst lautet die Beschreibung der gesamten Datei wie folgt.
Dockerfile
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . /code/
EXPOSE 8000
Von oben nach unten,
FROM python3.7
Geben Sie in der ersten Zeile ** an, welches Bild aus den bereits erstellten Bildern verwendet werden soll **. Python3.7
wird hier gemäß der in Vorheriger Artikel erstellten virtuellen Umgebung angegeben.
ENV PYTHONUNBUFFERED 1
In der zweiten Zeile gibt ** ENV
die Umgebungsvariable ** an. Dies bedeutet, dass der Wert der Umgebungsvariablen "PYTHONUNBUFFERED" auf "1" gesetzt ist. Deaktivieren Sie die Python-Pufferung für Standard-E / A.
RUN mkdir /code
In der 4. Zeile können Sie mit "RUN" ** den Befehl angeben, der zur Erstellungszeit ausgeführt werden soll **. Hier erstellen wir ein "Code" -Verzeichnis.
WORKDIR /code
Geben Sie in der 5. Zeile ** das Arbeitsverzeichnis ** an. Es gibt an, aus welchem Verzeichnis die nachfolgenden "RUN" und "CMD" ausgeführt werden.
COPY requirements.txt /code/
In der 7. Zeile mit einer Lücke Letztes Mal Kopieren Sie die erstellte ** require.txt
in das code
-Verzeichnis **. Sie können dasselbe mit ADD
tun, aber es scheint, dass ** COPY` aufgrund seiner Vielseitigkeit zum Kopieren von reinen Dateien ** empfohlen wird. (Siehe offizielles Dokument](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy)
RUN pip install --upgrade pip
Aktualisieren Sie in Zeile 8 den pip
selbst.
RUN pip install -r requirements.txt
Installieren Sie in der 9. Zeile die Pakete, die in der zuvor kopierten require.txt
beschrieben sind.
COPY . /code/
In Zeile 11 werden alle ** alle Verzeichnisse / Dateien ** unter dem ** Stammverzeichnis des Host-PC (Mac) ** (der Hierarchie, in der sich die Docker-Datei befindet) in den ** Container kopiert, der später generiert wird. ** Wird sein.
EXPOSE 8000
Schließlich ** deklarieren Sie die zu verwendende Portnummer **. ** Konventionell ist es oft die Standardnummer, die in Bibliotheken / Frameworks verwendet wird **, daher geben wir hier den Standardwert "8000" in "Django" an. (Ich habe auch versucht, eine andere Nummer zu deklarieren, aber es schien gut zu funktionieren, wenn es mit den Befehlszeilenargumenten beim Ausführen des Servers und der Beschreibung in docker-compose.yml
übereinstimmte, die ich später erstellt habe.)
django_starter
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── Dockerfile <- New!
├── manage.py
├── .venv
│ └── (Abkürzung)
└── requirements.txt
Damit ist die Beschreibung von "Dockerfile" zur Schaffung der Umgebung von "Django" eine Pause.
Als nächstes überlegen wir uns die Beschreibung von "docker-compose.yml" basierend auf der diesmal erstellten "Docker-Datei". Klicken Sie hier für den nächsten Artikel ↓ "3. Betrachten Sie die Beschreibung von docker-compose.yml"
Danke für Ihren Besuch.
Recommended Posts