Eine kurze Diskussion über Schreibregeln für Docker Compose

Eine kurze Diskussion über Schreibregeln für Docker Compose

Dieser Artikel stellt nichts im Zusammenhang mit der Clusterbereitstellung vor

Versionsbeschränkungen

  • Docker-Engine >= 19.03
  • Docker Compose >= 3.8

Struktur Einführung

docker-compose.yaml besteht hauptsächlich aus

version # docker compose versionnetworks # Netzwerk, wird für interne Kommunikation im Docker-Container verwendetx-{name} # Vorlagenbenennungsregel beginnt mit x- für Wiederverwendungvolumes # Volume mountservices # Servicemodul, definiert intern Containerinformationen, seine internen Parameter entsprechen den Parametern von docker run

Moduleinführung

Offizielle Docker Compose-Dokumentation

Version

Wenn die Version von docker-compose.yaml aktualisiert werden muss, lesen Sie das Referenzdokument zum Versionsupgrade.

Dateiversion erstellen Docker Engine-Version
3.8 19.03.0+
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

Netzwerkmodus

Verwenden Sie die gleichen Werte wie für --network , mit der speziellen Form service:[service name]

Netzwerkmodus: "Brücke"
Netzwerkmodus: "Host"
Netzwerkmodus: "keine"
Netzwerkmodus: "Dienst:[Dienstname]"
Netzwerkmodus: "Container:[Containername/ID]"

Netzwerke

Legen Sie das Netzwerk für den Container fest, der von der aktuellen Datei docker-compose.yaml erstellt wurde

Es existiert nicht notwendigerweise auf der gleichen Ebene wie die Version, sondern kann auch in anderen Modulen, wie etwa Diensten, existieren.

Internes Netzwerk

Leistungen:
 einige Dienste:
  Netzwerke:
   -irgendein-Netzwerk
   - anderes Netzwerk

Öffentliches Netzwerk

Version: "3"
Netzwerke:
 Standardnetzwerk:

Aliase (werden hinzugefügt)

Netzwerkalias

Version: "3.8"

Leistungen:
 Webseite:
  Bild: „nginx:alpine“
  Netzwerke:
   - neu

 Arbeitnehmer:
  Bild: „Mein-Arbeiter-Bild: Neuestes“
  Netzwerke:
   - Vermächtnis

 db:
  Bild: MySQL
  Netzwerke:
   neu:
    Aliase:
     - Datenbank
   Vermächtnis:
    Aliase:
     -mysql

Netzwerke:
 neu:
 Vermächtnis:

IPv4_Adresse, IPv6_Adresse (wird hinzugefügt)

Version: "3.8"

Leistungen:
 App:
  Bild: nginx:alpine
  Netzwerke:
   app_net:
    IPv4-Adresse: 172.16.238.10
    IPv6-Adresse: 2001:3984:3989::10

Netzwerke:
 app_net:
  ipam:
   Treiber: Standard
   Konfiguration:
    - Subnetz: "172.16.238.0/24"
    - Subnetz: "2001:3984:3989::/64"

Dienstleistungen

Der wichtigste Teil dient zur Konfiguration der einzelnen Dienste

bauen

Wird zum Erstellen von Images verwendet. Wenn sowohl die Felder „Build“ als auch „Image“ vorhanden sind, werden der von „Image“ angegebene Imagename und das Tag als Name und Tag des erstellten Images verwendet.

Version: „3.8“ # Docker Compose-Versionsdienste:
 webapp: # Der durch docker-compose definierte Dienstname (Containername) dient hauptsächlich für die Parameter des Befehls docker-compose und stimmt möglicherweise nicht mit dem von docker ps build angezeigten Containernamen überein: # Verwenden Sie Dockerfile, um das Image zu erstellen context: ./dir Kontextpfad, der relative Pfad ist relativ zum Compose-Dateipfad dockerfile: Dockerfile-alternate # Geben Sie den Dockerfile-Dateinamen an args: # Geben Sie die Parameter der Umgebungsvariablen Dockerfile an buildno: 1 # Sowohl das Schreiben in Verzeichnisse als auch in Listen ist zulässig

Kontext

Sie können einen relativen Pfad oder die URL eines Git-Repositorys verwenden.

bauen:
 Kontext: ./dir

Docker-Datei

Geben Sie den Dockerfile-Dateinamen an und der Kontext muss angegeben werden

bauen:
 Kontext: .
 Dockerfile: Dockerfile-Alternative

Argumente

Das ARG Feld im Dockerfile wird verwendet, um die Umgebungsvariablen beim Docker-Build anzugeben.

ARG Build-Nr.
ARG gitcommithash

RUN echo "Build-Nummer: $buildno" # Bash-ähnlicher Stil RUN echo "Basierend auf Commit: $gitcommithash"

Sie können eine Liste oder eine Karte verwenden, um Argumente festzulegen

bauen:
 Kontext: .
 Argumente: # Karte
  Build-Nr.: 1
  gitcommithash:cdc3b19
bauen:
 Kontext: .
 args: # Liste
  -buildno=1
  -gitcommithash=cdc3b19

Tipps
Wenn Sie boolesche Werte verwenden müssen, müssen Sie doppelte Anführungszeichen („true“, „false“, „yes“, „no“, „on“, „off“) verwenden, damit der Parser sie als Zeichenfolgen analysiert.

cache_von

Cache für den Build-Prozess angeben

bauen:
 Kontext: .
 cache_von:
  - alpin:neueste
  -corp/web_app:3.14

Etiketten

Entspricht der LABEL -Anweisung im Dockerfile, wobei Metadaten für das Bild festgelegt werden.

bauen:
 Kontext: .
 Beschriftungen: # Karte
  com.example.description: „Buchhaltungs-Webanwendung“
  com.example.department: „Finanzen“
  com.example.label-mit-leerem-Wert: ""
bauen:
 Kontext: .
 Beschriftungen: # Liste
  - „com.example.description=Buchhaltungs-Webanwendung“
  - „com.example.department=Finanzen“
  - „com.example.label-mit-leerem-Wert“

Netzwerk

Wie beim Befehl docker --network wird das Netzwerk für den Container angegeben. Ich verstehe, dass die Einrichtung einer LAN-Brücke zwei physische LANs in drei Modi verbinden kann

bauen:
 Kontext: .
 Netzwerk: Host # Host-Modus, die Netzwerklatenz ist am niedrigsten und die Leistung entspricht der des Host-Computers
bauen:
 Kontext: .
 Netzwerk: custom_network_1 # Benutzerdefiniertes Netzwerk
bauen:
 Kontext: .
 Netzwerk: keines # Kein Netzwerk

shm_size

Legen Sie die Größe des Verzeichnisses /dev/shm im Container fest

Das Verzeichnis /dev/shm ist sehr wichtig. Dieses Verzeichnis liegt nicht auf der Festplatte, sondern im Speicher. Die Standardgröße ist die Hälfte der Speichergröße. Die darin gespeicherten Dateien werden nicht gelöscht. Durch die Aufteilung dieses Verzeichnisses im Container kann die Leistung des Containers bis zu einem gewissen Grad festgelegt werden.

bauen:
 Kontext: .
 shm_size: '2gb' # Verwenden Sie eine Zeichenfolge, um die Größe festzulegen
bauen:
 Kontext: .
 shm_size: 10000000 # Bytegröße festlegen

Befehl

Entspricht dem CMD -Befehl in Dockerfile

Befehl: bundle exec thin -p 3000 # Shell-ähnlich
Befehl: ["bundle", "exec", "thin", "-p", "3000"] # json-ähnlich

Containername

Entspricht docker run --name

Containername: mein Webcontainer

hängt ab von

Wird verwendet, um Abhängigkeiten zwischen Diensten auszudrücken

Beim docker-compose up wird die Startreihenfolge gemäß „depends_on“ bestimmt.

Version: "3.8"
Leistungen:
 Webseite:
  bauen: .
  depends_on: # Starten Sie zuerst DB und Redis
   -db
   - Redis
 Redis:
  Bild: Redis
 db:
  Bild: postgres

Tipps:
Docker-Compose wartet vor dem Start nicht, bis der Status des Containers in depends_on „bereit“ ist. Daher müssen Sie den Status des Containers nach Abschluss des Startvorgangs überprüfen. Die offizielle Lösung besteht in der Verwendung von Shell-Skripten zur Behebung des Problems. Darauf wird hier jedoch nicht näher eingegangen.

depends_on wartet nicht, bis db und redis „bereit“ sind, bevor das Web gestartet wird – nur, bis sie gestartet wurden. Wenn Sie warten müssen, bis ein Dienst bereit ist, finden Sie unter Steuern der Startreihenfolge weitere Informationen zu diesem Problem und Strategien zur Lösung.
----Formular https://docs.docker.com/comp...

Geräte

Eingebundene externe Geräte, dasselbe wie --devices

Geräte:
 – „/dev/ttyUSB0:/dev/ttyUSB0“

DNS

Benutzerdefinierte DNS-Adresse

dns: 8.8.8.8 # einzelner String-Wert
DNS: # Liste 
 - 8.8.8.8
 - 9.9.9.9

DNS-Suche

Anpassen des DNS-Suchdomänennamens

dns_search: example.com # einzelner String-Wert
DNS-Suche:
 - dc1.example.com
 - dc2.example.com

Einstiegspunkt

Überschreiben des Standardeinstiegspunkts

Einstiegspunkt: /code/entrypoint.sh

Dasselbe wie im Dockerfile

Einstiegspunkt: ["php", "-d", "memory_limit=-1", "vendor/bin/phpunit"]

Tipps:
entrypoint in docker-compose.yaml löscht den CMD -Befehl im Docker-File und überschreibt alle ENTRYPOINT Anweisungen im Docker-File.

Umgebungsdatei

Fügen Sie eine Umgebungsvariablendatei zu docker-compose.yaml hinzu. Wenn Sie eine Compose-Datei in docker-compose -f FILE festlegen, ist der Dateipfad in env_file relativ zu FILE

env_file: .env # einzelner Wert
env_file: # Liste
 - ./common.env
 - ./apps/web.env
 – /opt/runtime_opts.env

Tipps:
.env-Dateiformat:

# Rails/Rack-Umgebung festlegen # '#' ist ein Kommentar,
# Leere Zeilen werden ignoriert RACK_ENV=Entwicklung # Das Format ist VAR=VAL

Die Umgebungsvariablen in der .env-Datei können während des Build-Prozesses nicht explizit gelesen werden. Sie werden nur von der Datei docker-compose.yaml gelesen. Wenn Sie die Umgebungsvariablen während des Builds verwenden müssen, fügen Sie nach dem Build den Unterparameter args hinzu.

Um mehrere .env-Dateien anzugeben, gibt es auf der offiziellen Website diesen Satz, der sehr kompliziert ist

Beachten Sie, dass die Reihenfolge der Dateien in der Liste für die Bestimmung des Werts einer Variablen, die mehr als einmal vorkommt, von Bedeutung ist.
--- von https://docs.docker.com/comp...

Die wörtliche Übersetzung lautet

Bedenken Sie, dass die Reihenfolge der Dateien in der Liste wichtig ist, um die Werte zu bestimmen, die mehrfach vorkommenden Variablen zugewiesen werden.

Da die Umgebungsparameterdateien von oben nach unten verarbeitet werden, bedeutet dies, dass, wenn mehrere Parameterdateien dieselbe Umgebungsvariable enthalten, die letzte Vorrang hat.

Umfeld

Umgebungsvariablen hinzufügen

Umgebung: # Karte
 RACK_ENV: Entwicklung
 ANZEIGEN: 'wahr'
 SESSION_SECRET:
Umgebung: # Liste
 - RACK_ENV=Entwicklung
 - SHOW=true
 -SESSION_SECRET

Tipps:
Die Umgebungsvariablen in der .env-Datei können während des Build-Prozesses nicht explizit gelesen werden. Sie werden nur von der Datei docker-compose.yaml gelesen. Wenn Sie die Umgebungsvariablen während des Builds verwenden müssen, fügen Sie nach dem Build den Unterparameter args hinzu.
Diese Umgebungsvariable kann beim Erstellen des Images von unserem eigenen Code gelesen werden, zum Beispiel:

Funktion getEnvInfo() Zeichenfolge {
  rackEnv := os.Getenv("RACK_ENV")
  fmt.Println(rackEnv)
}

Ausgabe:
Entwicklung

exponieren

Ports freigeben, aber nur für die Kommunikation zwischen Diensten. Freigegeben wird der interne Port, ähnlich EXPOSE -Anweisung in Dockerfile

exponieren:
 - "3000"
 - "8000"

externe_links

Konnektivitätsdienste

externe_links:
 - redis_1
 - project_db_1:mysql
 - project_db_1:postgresql

Tipps:
Die offizielle Empfehlung ist, network zu nutzen

extra_hosts

Fügen Sie einen benutzerdefinierten Domänennamen hinzu, identisch mit --add-host

zusätzliche_hosts:
 - "somehost:162.242.195.82"
 – „anderer Host:50.31.209.229“

Sie können auch in die Datei /etc/hosts im Container schreiben

162.242.195.82 irgendein Host
50.31.209.229 anderer Host

Gesundheitscheck

Entspricht HEALTHCHECK Anweisung im Dockerfile

Gesundheitscheck:
 Test: ["CMD", "curl", "-f", "http://localhost"]
 Intervall: 1m30s
 Zeitüberschreitung: 10 s
 Wiederholungsversuche: 3
 Startzeitraum: 40 s

Verwenden Sie disabel: true , was gleichbedeutend mit test: ["NONE"] ist.

Gesundheitscheck:
 deaktivieren: true

Bild

Geben Sie das Image an, das abgerufen oder verwendet werden soll. Sie können auch倉庫/標簽oder eine teilweise Image-ID verwenden.

Bild: Redis #Standardbezeichnung aktuell
Bild: Ubuntu:18.04
Bild: tutum/influxdb
Bild: example-registry.com:4000/postgresql
Bild: a4bc65fd

init

Führen Sie innerhalb des Containers ein Init-Programm aus, um Signale zum Starten des Prozesses weiterzuleiten.

Version: "3.8"
Leistungen:
 Webseite:
  Bild: alpin:latest
  init: wahr

Tipps:
Die standardmäßig verwendete Init-Binärdatei ist Tini und ist auf dem Daemon-Host unter /usr/libexec/docker-init installiert. Sie können den Daemon so konfigurieren, dass er über die Konfigurationsoption „Init-Pfad“ eine benutzerdefinierte Init-Binärdatei verwendet.

Isolierung

Gibt die Container-Isolationstechnologie an. Linux unterstützt nur default , während Windows default unterstützt. Einzelheiten zu den drei Werten von Hyperv finden Sie in den Docker Engine-Dokumenten.

Etiketten

Entspricht der LABEL -Anweisung im Dockerfile, wobei Metadaten für den Container festgelegt werden.

bauen:
 Kontext: .
 Beschriftungen: # Karte
  com.example.description: „Buchhaltungs-Webanwendung“
  com.example.department: „Finanzen“
  com.example.label-mit-leerem-Wert: ""
bauen:
 Kontext: .
 Beschriftungen: # Liste
  - „com.example.description=Buchhaltungs-Webanwendung“
  - „com.example.department=Finanzen“
  - „com.example.label-mit-leerem-Wert“

Links

Funktion der alten Version, nicht empfohlen

Protokollierung

Stellen Sie die täglichen Parameter für den aktuellen Dienst ein

Protokollierung:
 Treiber: Syslog
 Optionen:
  Syslog-Adresse: "tcp://192.168.0.42:123"

driver Treiberparameter ist derselbe wie --log-driver

Treiber: "JSON-Datei"
Treiber: "syslog"
Treiber: „keine“

Tipps:
Nur wenn JSON-Datei und Journald verwendet werden, können Docker-Compose Up- und Docker-Compose-Protokolle die Protokolle sehen. Kein anderer Treiber kann den Protokolldruck sehen.

Geben Sie die Protokolleinstellungen an, wie bei docker run --log-opt . Das Format ist eine KV-Struktur.

Treiber: "syslog"
Optionen:
 Syslog-Adresse: "tcp://192.168.0.42:123"

Der Standard-Protokolltreiber ist json-file , und Sie können Speicherlimits festlegen

Optionen:
 max-size: "200k" # Maximaler Speicherplatz für eine einzelne Datei max-file: "10" # Maximale Anzahl an Dateien

Tipps:
Die oben genannten option werden nur vom json-file unterstützt. Verschiedene Treiber unterstützen verschiedene Parameter. Einzelheiten finden Sie in der folgenden Tabelle.

Liste unterstützter Treiber

Treiber Beschreibung
keiner Keine Protokollausgabe.
lokal Protokolle werden in einem benutzerdefinierten Format gespeichert, das den Mehraufwand minimieren soll.
json-Datei Protokolle werden in einem benutzerdefinierten Format gespeichert, das den Mehraufwand minimieren soll.
Syslog Schreiben Sie Protokollnachrichten in die Syslog-Einrichtung. Der Syslog-Daemon muss auf dem Host ausgeführt werden.
Tagebuch Schreiben Sie Protokollnachrichten in Journald. Der Journald-Daemon muss auf dem Host ausgeführt werden.
gelf Schreibt Protokollnachrichten an einen Graylog Extended Log Format (GELF)-Endpunkt wie Graylog oder Logstash.
fließend Schreiben Sie Protokollnachrichten an fluentd (Weiterleitung der Eingabe). Der Fluentd-Daemon muss auf dem Host ausgeführt werden.
awslogs Schreiben Sie Protokollnachrichten in Amazon CloudWatch Logs.
schmatzen Schreiben Sie mithilfe des HTTP Event Collector Protokollnachrichten in Splunk.
Abonnieren Schreibt Protokollnachrichten als Event Tracing for Windows (ETW)-Ereignisse. Nur auf Windows-Plattformen verfügbar.
gcplogs Schreibt Protokollnachrichten in die Protokollierung der Google Cloud Platform (GCP).
Logeinträge Schreibt Protokollnachrichten in Rapid7-Protokolleinträge.

Tipps:
Weitere Einzelheiten finden Sie unter Konfigurieren von Protokollierungstreibern.

Häfen

Extern freiliegende Anschlüsse

kurze Syntax:
Geben Sie entweder beide Ports HOST:CONTAINER oder nur den Container-Port (es wird ein temporärer Host-Port ausgewählt).

Häfen:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - „9090-9091:8080-8081“
 - „49100:22“
 – „127.0.0.1:8001:8001“
 – „127.0.0.1:5000-5010:5000-5010“
 - „6060:6060/udp“
 - "12400-12500:1240"

Tipps:
Beim Zuordnen von Ports im Format HOST:CONTAINER kann die Verwendung eines Container-Ports unter 60 zu einem Fehler führen, da YAML Zahlen im Format xx:yy als Sexagesimalzahlen interpretiert (die als Zeit verstanden werden können). Es wird daher empfohlen, Portzuordnungen immer explizit als Zeichenfolgen anzugeben.

lange Syntax

Die lange Syntax erlaubt Felder, die die kurze Syntax nicht erlaubt

  • Ziel: Hafen im Container
  • veröffentlicht: öffentlich zugänglicher Port
  • Protokoll: Portprotokoll (TCP oder UDP)
  • Modus: Host, um den Host-Port auf jedem Knoten zu veröffentlichen, oder Ingress, um die Last der Clustermodus-Ports auszugleichen.
Häfen:
 - Ziel: 80
  veröffentlicht: 8080
  Protokoll: TCP
  Modus: Host

Neustart

Richtlinie zum Neustarten von Containern

restart: "no" # Bei Fehler nicht neu starten restart: always # Nach Fehler immer neu starten restart: on-failure # Nur bei Fehlercode „on-failure“ neu starten restart: unless-stopped # Nach manuellem Stoppen nicht neu starten

Geheimnisse (werden hinzugefügt)

Bände

Wird zum Mounten von Datenträgern verwendet

kurze Syntax
Die kurze Syntax verwendet das einfachste Format [SOURCE:]TARGET[:MODE]

  • SOURCE kann eine Hostadresse oder ein Datenträgername sein.
  • TARGET ist der Pfad innerhalb des Containers.
  • MODE umfasst ro für read-only und rw für read-write (Standard)

Wenn Sie einen relativen Pfad zum Host verwenden, erweitern Sie docker-compose.yaml .

Bände:
 #Geben Sie den Pfad im Container an, Docker erstellt automatisch den Pfad - /var/lib/mysql

 #Absoluten Pfad einbinden - /opt/data:/var/lib/mysql

 # Relativen Pfad einbinden - ./cache:/tmp/cache

 # Relativer Pfad zum Benutzerverzeichnis – ~/configs:/etc/configs/:ro

 # Benannte Einbindung - Datenvolumen:/var/lib/mysql

lange Syntax

Die lange Syntax ermöglicht die Verwendung von Feldern, die nicht in der kurzen Syntax ausgedrückt werden können.

  • type : Installationstyp, bind , tmpfs oder npipe source : Mount-Quelle. Dies kann der Hostpfad oder der Volume-Name sein, der in den Mount-Einstellungen der obersten Ebene festgelegt wurde. tmpfs ist nicht zum Mounten target geeignet: Mount-Pfad im Container read_only : Setzen Sie den Mount-Pfad auf schreibgeschützt
  • bind : Konfigurieren Sie zusätzliche Bind-Einstellungen
    • propagation : wird verwendet, um den Ausbreitungsmodus der Bindung festzulegen
  • volume : Zusätzliche Mount-Konfiguration konfigurieren
    • nocopy : Deaktivieren Sie das Kopieren von Daten aus dem Container beim Erstellen des Volumes
  • tmpfs : zusätzliche tmpfs-Konfiguration konfigurieren
    • size : Legt die Größe des gemounteten tmpfs (Bytes) fest.
  • consistency : die Konsistenzanforderung für die Bereitstellung, entweder konsistent (Host und Container haben dieselbe Ansicht), zwischengespeichert (Lesecache, Hostansicht ist maßgebend) oder delegiert (Lese-/Schreibcache, Containeransicht ist maßgebend)
Version: "3.8"
Leistungen:
 Webseite:
  Bild: nginx:alpine
  Häfen:
   - "80:80"
  Bände:
   - Typ: Volumen
    Quelle: meineDaten
    Ziel: /data
    Volumen:
     nocopy: wahr
   - Typ: binden
    Quelle: ./static
    Ziel: /opt/app/static

Netzwerke:
 webnet:

Bände:
 meine Daten:

Dies ist das Ende dieses Artikels über die Schreibregeln von Docker Compose. Weitere relevante Inhalte zu den Schreibregeln von Docker Compose finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker-Compose - ausführliche Erklärung und Beispielcode
  • Detaillierte Schritte zur Installation und Einrichtung von Docker-compose
  • Detaillierte Beispiele zur Verwendung von Docker-Compose
  • Erläuterung der Docker Compose-Netzwerkeinstellungen
  • So führen Sie MySQL mit Docker-Compose aus
  • Zwei einfachste Möglichkeiten zur Installation von Docker-Compose
  • Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose
  • Docker-Container-Orchestrierungstool Compose (Erste Schritte)
  • Docker-Compose - Bereitstellung der chinesischen Gitlab-Version per Mausklick - Methodenschritte

<<:  JavaScript zum Erzielen von Feuerwerkseffekten (objektorientiert)

>>:  Springboot + Vue-Cropper realisiert den Effekt des Avatar-Ausschneidens und -Hochladens

Artikel empfehlen

Ubuntu 19.10 aktiviert SSH-Dienst (detaillierter Prozess)

Ich habe mehr als eine Stunde gebraucht, um SSH i...

So melden Sie sich unter Shell schnell ohne Kennwort bei der MySQL-Datenbank an

Hintergrund Wenn wir uns über den MySQL-Client in...

Grafisches Tutorial zur Installation und Konfiguration der MySQL-Version 5.7.15

Dieser Artikel enthält ein ausführliches Tutorial...

Hinweise zum Systemaufruf des Linux-Kernel-Gerätetreibers

/**************************** * Systemaufruf*****...

Detaillierte Erläuterung der Verwaltung und Verwendung von Docker Secrets

1. Was ist Docker Secret 1. Szenariodarstellung W...

Interner Ereignisrückruf der Webkomponentenkomponente und Problempunktanalyse

Inhaltsverzeichnis Vorne geschrieben Was genau is...

Praktische Aufzeichnung von VUE mithilfe des Wortwolkendiagramms von Echarts

echarts Wortwolke ist eine Erweiterung von echart...

5 Möglichkeiten, Ihre JavaScript-Codebasis sauberer zu machen

Inhaltsverzeichnis 1. Verwenden Sie Standardparam...

Detaillierte Analyse und Verwendung des Befehls tcpdump unter Linux

Einführung Einfach ausgedrückt ist tcpdump ein Pa...

MySql5.7.21 Installationspunkte Datensatznotizen

Die heruntergeladene Version ist die Zip-Dekompri...

So richten Sie Spring Boot mithilfe der Docker-Schichtenverpackung ein

Das Spring Boot-Projekt verwendet Docker-Containe...