‫Gut. Dies sind die Antworten für die Aufgabe, unser erstes Dockerfile zu erstellen. Wenn ich mich im
‫Stammverzeichnis unseres Repositorys befinde, das Sie zu Beginn dieses Kurses heruntergeladen haben,
‫sollten wir in der Lage sein, in die Dockerfile-Zuweisung 1 einzusteigen. Wenn wir dort reinschauen, habe ich nur eine Datei,
‫die mir wirklich am Herzen liegt, und das ist die Docker-Datei.
‫Vermutlich ist dies eine Quelle, die mir jemand gegeben hat, und sie sind ein App-Entwickler, der Node verwendet. js, und ich weiß nicht wirklich
‫viel darüber, also bearbeite ich einfach das Dockerfile.
‫OKAY.
‫Wenn ich den Anweisungen des Entwicklers folge, weiß ich, dass ich
‫als Erstes mein FROM-Image abrufen muss. Und ich weiß, dass ich den Node Official verwenden muss. Lass es mich nachschlagen.
‫Richtig. Da ist der Node Official.
‫Ich brauche die Version 6, die auf Alpine läuft. Es gibt also 6 Alpine.
‫Gut. Also 6-alpin.
‫Okay. Die nächste Sache... Ich muss Port 3000 aussetzen.
‫Ich belichte 3000 hier, weil das ist, worauf die App ausgelegt ist.
‫Aber wenn ich es später mit docker run ausführe, muss ich daran denken, dass ich das
‫-p verwenden muss, wenn Port 80 auf Port 3000 geht.
‫Gut.
‫Dieser benötigt einen Paketmanager, um diese App
‫zu installieren, tini. Ich werde dafür einen Run-Befehl verwenden.
‫Dann werde ich ein Verzeichnis erstellen.
‫Gut.
‫Ich werde sie einfach getrennt ausführen Befehle machen ... führe apk add aus
‫und führe dann mkdir aus.
‫OKAY. Dann muss ich in eine einzelne Datei kopieren, wie es aussieht.
‫Also könnte ich genauso gut das Arbeitsverzeichnis in das Verzeichnis ändern, das wir gerade erstellt haben.
‫Also WORKDIR User Source App. Das spart mir später Zeit.
‫Ich kann ein COPY-Paket json package
‫json erstellen. Gut. Dann muss ich einen Installationsbefehl ausführen. Es sieht aus wie es ein Lauf sein wird. Dieser sagt, führe einen anderen
‫Befehl aus, um aufzuräumen.
‫Gut.
‫Wenn Sie einen Bereinigungsbefehl ausführen, möchten Sie normalerweise, dass er in derselben Zeile oder in derselben Ausführungszeile wie die eigentliche Installation
‫ausgeführt wird.
‫Auf diese Weise wird alles gleichzeitig entfernt und Sie erhalten nur eine Bildebene.
‫Dies ist am besten für den Bildraum geeignet.
‫Also werde ich es hier hinzufügen.
‫Und was das Double & Sign oder das kaufmännische Und hier tut, ist, dass es tatsächlich eine Bedingung ist.
‫In der Befehlszeile unter Linux heißt es: 'Hey, wenn Sie den ersten Befehl ausgeführt haben und dieser erfolgreich ist, führen Sie den
‫zweiten Befehl aus. Â »Sie
‫kÃ¶nnen auch Leute sehen, die manchmal ein Semikolon einfÃ¼gen, und das ist auch in Ordnung.
‫Der Unterschied ist, dass ein Semikolon keine Abhängigkeit davon hat, ob der erste Befehl erfolgreich war oder nicht.
‫Es läuft nur die zweite, egal.
‫Also ich mag das doppelte kaufmännische Und.
‫Gut.
‫Es sieht so aus, als würden Sie weitere Dateien kopieren. Wenn ich alles kopieren will, mache ich einfach eine .. Das ist eine einfache Möglichkeit.
‫Stellen Sie sicher, dass in der Mitte ein Leerzeichen ist.
‫Das bedeutet im
‫Grunde: 'Kopiere alles von meinem aktuellen Verzeichnis auf dem Host in das aktuelle Arbeitsverzeichnis im Image. ' OKAY.
‫Ich bin bis zum letzten.
‫Und dieser sieht ein wenig knifflig aus.
‫Ich habe vier verschiedene Teile des Befehls, die ich dort ausführen muss.
‫Bei diesem Format muss ich also tini und dann ein Komma eingeben.
‫Das ist also in einem JSON-Format.
‫Diese bestimmte Befehlszeilengruppe. -, Knoten bin www.
‫Und wenn ich neugierig wäre, könnte ich
‫jederzeit zu meinem Browser gehen und Docker Run oder Docker Build Cmd ausführen.
‫Und ich wette, Sie Dockerfile Referenz. Und hier
‫auf dieser Seite könnte ich zum cmd gehen. Und es geht um die genaue Form. Wenn Sie hier lesen, werden
‫Sie feststellen, dass es eine sogenannte Shell-Form gibt. Und sie erwähnen auch etwas
‫über einen Einstiegspunkt.
‫Wir werden später in diesem Kurs in einem fortgeschritteneren Dockerfile-Abschnitt darüber sprechen.
‫Aber im Moment ist das gut.
‫Lassen Sie uns versuchen, es zu bauen. Docker bauen. Es ist mir eigentlich egal, wie ich es jetzt nenne.
‫Ich versuche nur, den Build zu testen, und normalerweise funktionieren meine Builds nicht beim ersten Mal. Also werde
‫ich es einfach Testknoten nennen. Ich werde dieses Verzeichnis erstellen.
‫OKAY.
‫Es sieht aus wie es richtig gebaut ist.
‫Mal sehen, ob Sie es ausführen können.
‫Ich mache ein --rm, weil es
‫mir wirklich egal ist, es zu behalten, nachdem ich es getestet habe, also mache ich das einfach.
‫Ich werde es nicht benennen müssen.
‫Ich muss einen Hafen anlegen, um den Hafen zu öffnen. Es möchte auf 80 laufen, hört aber auf 3000. OKAY.
‫Das ist eigentlich eine normale Nachricht, die wir
‫von Tini innerhalb von Alpine erhalten, daher mache ich mir darüber keine allzu großen Sorgen.
‫Mal sehen, ob es funktioniert.
‫Süss. Wir werden die Protokolle dort sehen.
‫OKAY.
‫Sieht aus wie es ist ..
‫Danke, Captain Picard.
‫Ich schätze den Applaus.
‫Ich schätze die Unterstützung.
‫Vielen Dank.
‫Gut.
‫Steuere c da raus. Jetzt sollte es
‫ganz oben auf meiner Bilderliste stehen.
‫Ich muss es umbenennen, bevor ich es auf Docker Hub stelle.
‫Also, Docker-Tag, und ich glaube, das Format ist das alte und das neue. Ja.
‫Also, Docker-Tag-Testknoten.
‫Ich werde
‫es Bretfisher-Testknoten nennen.
‫Und ich lasse es einfach spätestens.
‫Also, Docker Push und das hier. Alles, worüber wir uns Sorgen machen müssen, ist der Name. Also,
‫Docker Push Bretfisher Testknoten.
‫Gut. Lass uns zu Docker gehen und nachsehen.
‫Jetzt testen wir den Knoten.
‫OKAY.
‫Ich werde den Bildschirm und das Docker-Bild ls löschen.
‫Und es ist da. Ich werde es entfernen, Docker-Image beim
‫Bretfisher-Testen.
‫Gut. Jetzt werde ich es tatsächlich ausführen, Docker-Container ausführen --rm -p
‫80 3000 wie zuvor.
‫Dann werde ich es Bretfisher-Testknoten nennen.
‫Das sollte es herunterladen und ausführen.
‫Gut.
‫Wenn ich über meinen Browser localhost zurück gehe, ist er da. Ich kann Refresh drücken, um sicherzugehen.
‫Ja. Cool.