‫Gut. Schauen wir uns einige weitere Dockerfile-Beispiele an.
‫Gehen wir in unserem Repository, das Sie von meinem Github heruntergeladen haben, zu Dockerfile-Beispiel Nummer 2.
‫Dieses Mal haben wir tatsächlich zwei Dateien.
‫Wir haben die Dockerfile. Und jetzt haben wir einen Index. html.
‫Super einfach. Hallo Welt. HTML.
‫Es ist nicht wirklich wichtig, den HTML-Code zu verstehen.
‫Wir kopieren es einfach in unser Container-Image, während wir es erstellen.
‫Wenn wir uns die Docker-Datei ansehen, werden Sie feststellen, dass wir Nginx tatsächlich als unseren FROM-Befehl
‫verwenden.
‫Wir bauen kein eigenes Nginx, denn wenn Sie ein offizielles Image verwenden können, um die Arbeit
‫von Docker Hub aus zu erledigen, ist es für Sie viel einfacher, dieses Dockerfile zu pflegen und es
‫funktionsfähig zu halten.
‫In einfacheren Szenarien ist das offizielle Image oft Arbeit. Wenn Sie jedoch wachsen und Ihre
‫Umgebung und Ihre Systeme komplexer gestalten, müssen Sie wahrscheinlich zusätzliche benutzerdefinierte Software hinzufügen
‫oder deren Startmethode ändern oder Skripts hinzufügen, um die Konfiguration zu optimieren.
‫Aber wenn ich ein neues Greenfield-Projekt starte oder eine alte App konvertiere, beginne ich immer mit
‫den offiziellen Bildern von Docker Hub. Wenn ich dann auf einige Straßensperren stoße und dieses Bild
‫nicht mehr verwenden kann, gehe ich möglicherweise zurück zum Docker Hub und schaue noch einmal nach, ob es irgendetwas Brauches
‫gibt, das wirklich beliebt ist, dem ich vertrauen kann und in das ich und hineinschaue Mal sehen, ob es mein Problem lösen wird.
‫Aber es ist nichts Falsches daran, sich etwas Eigenes zu bauen.
‫Es ist nur mehr Arbeit und mehr Unterhalt im Laufe der Zeit.
‫Also hier ist super einfach. Wir haben drei Strophen.
‫Sie haben das VON schon einmal gesehen. Und diesmal haben wir das WORKDIR.
‫Nun, das ist wirklich nur im Grunde genommen eine Änderung des CD-Space-Verzeichnisses. Sie könnten also versucht sein, den Befehl run zu verwenden, run cd
‫in dieses Verzeichnis einzugeben und dann einige Dinge zu tun. Die beste Methode für Dockerfiles ist
‫es jedoch, immer eine separate WORKDIR-Zeilengruppe zu verwenden, wenn Sie das Verzeichnis wechseln.
‫Wenn Ihre Datei also etwas komplex wird und Sie sich in Ihrem Container hin und her bewegen müssen,
‫um Dinge zu erledigen, während sie erstellt wird, möchten Sie immer das WORKDIR verwenden, da es in der Docker-Datei viel einfacher ist,
‫zu beschreiben, was Sie tun.
‫In diesem Fall ändern wir hier tatsächlich das Standardverzeichnis von Nginx
‫für die HTML-Dateien.
‫In der Standardkonfiguration von Docker Hub fungiert Nginx nur als Webserver und stellt nur
‫statische Dateien direkt von der Container-Festplatte bereit.
‫Die letzte Strophe hier ist die Kopie. Und dies ist die Zeilengruppe, die Sie immer
‫verwenden, um Ihren Quellcode von Ihrem lokalen Computer oder Ihren Build-Servern in Ihre Container-Images zu kopieren.
‫In diesem Fall nehmen wir nur unseren einfachen Index. html und wir überschreiben die Datei
‫im Nginx-Standardverzeichnis, so dass es unsere benutzerdefinierte Homepage für den Webserver ist.
‫Bevor wir dies erstellen, werden Sie feststellen, dass erforderliche Zeilengruppen wie die cmd fehlen.
‫Wie können wir damit durchkommen?
‫Nun, im FROM-Image ist bereits ein cmd angegeben.
‫Und wenn wir das FROM verwenden, erben wir alles von der Docker-Datei, von der wir 'stammen', wenn das überhaupt ein Wort ist.
‫Auf diese Weise können Sie Dockerdateien miteinander verketten, sodass Bilder von anderen Bildern abhängen,
‫die von anderen Bildern abhängen.
‫Gut. Mal sehen, wie das funktioniert.
‫Bevor wir dies erstellen, wollen wir uns kurz daran erinnern, was ein Standard-Nginx-Server macht.
‫Machen wir einen schnellen Docker-Container-Lauf -p 8080, und wir werden diesen nicht sehr lange brauchen, also werden wir einen -rm machen, damit er
‫beim Beenden gelöscht wird. Der Name ist uns egal. Wir
‫werden nur Nginx ausführen. Wenn wir zu unserem Browser wechseln und localhost eingeben,
‫wird die standardmäßige Nginx-Indexseite angezeigt.
‫OKAY.
‫Erinnern wir uns daran und beenden wir diesen Container. Jetzt erstellen
‫wir unsere Version von Nginx mit unserer zusätzlichen Quellcodedatei.
‫OKAY.
‫Dieser sollte eigentlich ganz schnell gehen.
‫Sie bemerken, dass es nur ein paar Sekunden gedauert hat. Das liegt daran, dass wir Nginx bereits in unserem Bild-Cache hatten. Und alles, was lief,
‫war das Kopieren einer sehr kleinen Datei und das Ändern des Arbeitsverzeichnisses.
‫Führen wir nun den genauen Befehl aus, den wir gerade für Nginx ausgeführt haben. Nur dieses Mal werden wir dieses
‫neue Image verwenden, das wir gerade erstellt haben.
‫Wechseln Sie zu unserem Browser und aktualisieren Sie ihn.
‫Unser benutzerdefiniertes Index-HTML wird dort ausgeführt und unser Container funktioniert.
‫Wenn wir ein kurzes Bild machen, können wir unser letztes Bild oben sehen.
‫Wenn wir dies tatsächlich an Docker Hub senden wollten, funktioniert es genauso wie zuvor.
‫Wir müssen es nur neu markieren. So können wir Docker-Image-Tags erstellen.
‫Wenn Sie sich an den Hilfebefehl erinnern, können wir uns das Format ansehen und es ist immer
‫das, das wir markieren und das Tag, das es dann heißen soll. Also Docker Image Tag Nginx mit HTML neuesten.
‫Und dann muss ich es Bretfisher nennen ... so wie das.
‫Wenn ich dann noch einmal ein Docker-Bild mache, werden Sie feststellen, dass diese beiden oberen Zeilen wieder dieselbe Bild-ID haben
‫und nur unterschiedlich markiert sind.
‫Jetzt konnte ich ein Docker-Push mit diesem Repository und Tag durchführen und es über Docker Hub aufrufen.