‫Nuno fragt, ob ich meinen Docker-Dateibefehl benötige, um den Cassandra-Server zu starten. Danach muss ich
‫ein Datenbankschema importieren.
‫Was ist der beste Weg, das zu tun.
‫Wenn Ihnen also noch niemand im Chat geantwortet hat, weil dies
‫manchmal passiert, während ich am Einstiegspunktskript herumstreife, ist dies eine Art universeller Weg, um Dinge beim Starten von Containern zu erledigen.
‫Das bedeutet, dass Sie in Ihrer Docker-Datei den Einstiegspunkt und diese BMD haben.
‫Jetzt konzentriere ich mich in meinem Docker-Mastering-Kurs auf das CMT, denn das ist wirklich das, was Sie
‫verstehen müssen, um am Anfang zu sein. Ich muss einen Abschnitt mit mindestens einer Vorlesung über den Einstiegspunkt einfügen und
‫die verschiedenen Möglichkeiten diskutieren, die Sie haben können Einstiegspunkte zu tun.
‫Ein Einstiegspunkt, wenn wir ihn nach dem Einstiegspunkt in der CND aufschlüsseln, besteht also eigentlich aus zwei Teilen derselben einzelnen
‫Zeile oder eines einzelnen Befehls, die Docker beim Starten Ihres Containers ausführt.
‫Aber der Trick ist, dass Sie mit der Magie des Bash-Skripts den Einstiegspunkt nehmen können und stattdessen nur den
‫Beginn des Befehls, der möglicherweise vor dem CMT angezeigt wird, ein Skript ausführen und dann am Ende
‫dieses Skripts Sie können ihn anweisen, die Ausführung an den Rest der Befehlszeile weiterzuleiten.
‫Es macht vielleicht nicht viel Sinn, aber lasst uns überprüfen, ob eine reale Welt erloschen ist und
‫was wir sehen können, damit ich meine Fortsetzung abrufen kann, weil wirklich jedes persistente Datenspeichersystem hier genauso
‫vorgeht und
‫wenn ich bei Docker Hub nachschaue, bin
‫ich bei Docker Hub meine Fortsetzung des offiziellen Bildes.
‫Und wenn ich oben auf eine dieser Versionen klicke, erhalte ich die Docker-Datei, die Open Source ist, und in
‫dieser Datei finden Sie viele Dinge.
‫Es ist offensichtlich, dass ich meine Fortsetzung installiere und die Fortsetzung richtig konfiguriert bekomme, aber unten werden Sie ein
‫paar Dinge bemerken, zum einen, dass ich ein Shell-Skript an einen bestimmten Ort kopiere und dort die Assemblierung starte, aber das ist
‫nur wirklich aus Gründen der Abwärtskompatibilität.
‫Aber hier unten ist dies der Schlüsselteil des Einstiegspunktskripts, bei dem
‫der Einstiegspunkt selbst, der Befehl in der dunkleren Datei, kein Skript sein muss.
‫Wieder ist es wirklich nur zu nehmen, ob der Einstiegspunkt vorhanden ist und sie OMD sehen, und es setzt sie
‫einfach zusammen und führt sie alle in einer Zeile aus.
‫Sie würden also sehen, dass die beiden gebräuchlichen Methoden, wenn der Einstiegspunkt verwendet wird, entweder für
‫den Beginn eines Befehls sind, oder wenn Sie Docker verwenden, um
‫ein Befehlszeilen-Dienstprogramm auszuführen Hab einen Github.
‫Ich habe eher ein Docker-Image und ich bekomme ein Hub-Repo dahinter und was es tut, ist, dass es ein einziges
‫Befehlszeilen-Dienstprogramm in einem Container ausführt.
‫Und so, wie es hier funktioniert, habe ich den Einstiegspunkt, der der Befehl selbst ist.
‫Und da die CMB danach geht, wenn ich beide in meiner Docker-Datei habe, werden sie
‫einfach zusammengeschaltet.
‫Ich habe es das Standard-CRM D ausgeführt, also, wenn Sie darüber nachdenken, wenn ich diesen Befehl
‫aus dem Befehl ausführen, kann ich Docker ausführen.
‫Brett Fisher hat HP bezahlt.
‫Und dann drücke ich einfach die Eingabetaste und dann wird automatisch der Versionsbefehl ausgeführt.
‫Aber wenn ich die Befehlszeile richtig eintippe.
‫Tucker rennen.
‫Brett Fisher, wenn ich das nur mache, wird es das Bild ziehen.
‫Es tut mir leid, aber
‫wenn ich dieses Image starte, wird es standardmäßig ausgeführt, und die Hilfe wird im Grunde genommen ausgeblendet,
‫da dies in der Docker-Datei in der CRM D-Zeile angegeben ist.
‫Aber wenn ich am Ende nur etwas ändere, weil ich mich erinnere, dass das Format eines Docker-Ausführungsbefehls
‫darin besteht, dass Docker ausgeführt wird und dann Ihre Optionen ausgeführt werden und dann das Image, das Sie festlegen werden, und
‫anschließend alles, was danach ausgeführt wird das ersetzt den CND in Zeile.
‫Es ist also wie ein dynamischer Ersatz des CMT.
‫Wenn ich hier also nur Google Dot Com ausführe, ersetzt es die Strich-Strich-Version, die standardmäßig ausgeführt wird.
‫Das ist eine wirklich coole Möglichkeit, Docker als Befehlszeilen-Dienstprogramm zu verwenden, und das ist gut so.
‫Das ist im Wesentlichen mein Beispiel dafür, wie man das macht.
‫Der andere Weg, dies zu
‫tun, ist nicht, dass dies der eine Weg ist, es zu tun, der andere Weg ist ein
‫Shell-Skript. Wir werden also hier sehen, dass der Einstiegspunkt hier die Datei definiert, die es ausführen soll.
‫Und wenn ich dann hier ganz nach oben scrolle und dieses acht Punkte umfassende Verzeichnis verwende, gehe ich irgendwie in ein
‫Verzeichnis und finde tatsächlich, dass dort eine andere Datei ist.
‫Dies ist das Docker-Einstiegspunktskript, das in den Build kopiert wird.
‫Nun in diesem Skript, was los ist.
‫Hier drin sind Unmengen von Dingen.
‫Vermutlich mindestens hundert Zeilen.
‫Ja.
‫Tatsächlich sind es Hunderte von Zeilen.
‫Aber der magische Teil hier ist das.
‫Rauszoomen.
‫Okay.
‫Bildlaufleiste entfernen.
‫Ich will dich nicht sehen.
‫Lassen Sie
‫uns einfach zu Ras gehen.
‫Genau.
‫Und dann sagt das Dollarzeichen an der Shell, dass ich dieses Skript beende. Bitte leiten Sie die Ausführung an den Rest meiner Befehlszeile
‫weiter, was auch immer in der CMT enthalten ist. In diesem Fall war es der
‫Dämon meiner Fortsetzung.
‫Wenn in diesem Fall ein Container gestartet wird, wird im Wesentlichen das Skript ausgeführt.
‫Am Ende des Skripts steht genau das, was Sie am
‫Ende dieses Befehls gesagt haben.
‫Du bist du bist meine Fortsetzung Dämon im Vordergrund, damit es läuft.
‫Was das Skript jetzt macht, sind all die Dinge, die Sie wahrscheinlich nicht bemerkt
‫haben, als Sie einen Datenbankcontainer starteten.
‫Es wird der Standardbenutzer erstellt, den Sie festlegen möchten.
‫Das Root-Passwort wird in das von Ihnen gewünschte geändert.
‫Es erstellt die Datenbank basierend auf dem, was Sie gesagt haben, und es macht all das und die Umgebungsvariablen
‫richtig.
‫Denn wenn wir ein Backup erstellt haben, um dies nur zu duplizieren, und wenn wir ein Backup der Bibliothek erstellt haben, die Sie
‫für die meisten dieser offiziellen Bilder kennen, werden Sie eine ganze Reihe von Umgebungsvariablen haben,
‫die alle hier unten spezifizieren.
‫Und all diese Umgebungsvariablen werden in diesem Skript verwendet, um meine Fortsetzung vorzukonfigurieren.
‫Wenn Sie in die Datei selbst eintauchen, werden einige Umgebungsvariablen gesetzt und Dateien gesucht, falls Sie Druckers warmes,
‫geheimes Zeug wie dieses verwenden, und im Grunde werden alle Daten abgerufen,
‫die für die Konfiguration benötigt werden.
‫Dann startet es meine Fortsetzung konfiguriert es einschließlich Ändern des root-Passworts in allen anderen Dingen.
‫Dann wird meine Fortsetzung heruntergefahren, das Skript beendet und diese Ausführung an meine Fortsetzung übergeben, um erneut
‫zu starten, diesmal jedoch endgültig.
‫Es geht also im Wesentlichen darum, die Fortsetzung zu starten, indem einige Dinge getan werden, um die Fortsetzung zu stoppen und ein Backup zu starten.
‫Und so funktionieren all diese dauerhaften Lagersysteme in den offiziellen Containern.
‫Die lange Antwort auf diese Frage ist, dass Sie sie in Ihrem eigenen benutzerdefinierten Einschlussskript verwenden möchten. Vielleicht
‫kopieren Sie das Standard-Skript, wenn es eines gibt, oder Sie erstellen Ihr eigenes und
‫dann erstellen Sie Ihr eigenes Bild das würde dann dieses Schema zunächst beim ersten Start erstellen.
‫Wenn Sie nun befürchten, dass ein Schema in der Datenbank vorhanden ist, möchten Sie die Schemas
‫nicht wirklich so aktualisieren, wie Sie weitere Schemas ausführen möchten.
‫Durch ein anderes Dienstprogramm außerhalb dieses Containers würden Sie Ihre my cycle-Befehle von einem anderen Container
‫ausführen und sie würden dann über das Netzwerk in etwa so ausgeführt.
‫Jetzt müssen Sie dies nicht mehr ändern. Sie könnten einfach Cassandra starten und dann das
‫Schema von einer entfernten Stelle aus einem anderen Container hinzufügen, aber Sie müssten diese Reihenfolge richtig steuern.
‫Sie müssten warten, bis Cassandra hochfährt.
‫Sie müssten über einen anderen Container verfügen, der möglicherweise ein eigenes Skript hat, und dann über ein Skript,
‫das intelligent genug ist, um weiterhin zu prüfen, ob Cassandra bereit ist.
‫Wenn Sie fertig sind, führen Sie Ihr Schema entweder als Schema-Update oder als ursprüngliche Schema-Installation aus.
‫Im Grunde könnte man es so machen und das und viele Fälle sind wahrscheinlich der richtige Weg,
‫aber vor allem, wenn man lokale Entwicklung betreibt oder einfach etwas Kleines und
‫Einfaches beschleunigen und einfach ein Schema aufbauen möchte Wenn Sie dies beim ersten Mal automatisch
‫tun wollten, würden Sie hier das offizielle Standard-Image verwenden und in Ihrem eigenen benutzerdefinierten Image ein
‫eigenes Schema und eine eigene Datei hinzufügen Zum ersten Mal würde es das
‫jetzt tun.
‫Hier ist das Problem, und Sie müssen darauf achten, dass dieses Einstiegspunktskript jedes Mal ausgeführt wird, wenn der Container mindestens von
‫diesem Image aus gestartet wird, das Sie mit dem benutzerdefinierten Image erstellt haben.
‫Sie möchten also sicherstellen, dass Ihr Skript so intelligent ist, dass es das Schema in einer Anzeigen-Datenbank,
‫in der das Schema bereits vorhanden ist, nicht immer wieder ausführt.
‫Sie müssen auf dieser Intelligenz aufbauen, und aus diesem Grund kann es vorkommen, dass abhängig von Ihrem Modell
‫die Dinge regelmäßig aktualisiert werden oder wenn Sie Datenbanken ständig in einem Schwarmcluster oder kubanischen Ideencluster
‫verschieben und dies dann im Datenbankcontainer selbst tun Möglicherweise ist dies nicht die richtige Strategie für Sie, aber
‫diese Option ist vorhanden.
‫Also probier es aus.
‫Und das ist wie in den Cliff Notes, was mit Einstiegspunkten zu tun ist, die nicht in meinem ursprünglichen Kurs waren. Daher könnte
‫ich wahrscheinlich sagen, dass dieses Video dort drin ist und dass es im Moment am wenigsten ergänzendes Material gibt, das
‫besser ist als nichts zu haben.