Perfekte Lösung für das Zeitzonenproblem des Docker Alpine-Image

Perfekte Lösung für das Zeitzonenproblem des Docker Alpine-Image

Als ich kürzlich Docker zum Bereitstellen einer Java-Anwendung verwendete, stellte ich fest, dass die Zeitzone falsch war. Die Verwendung von JDK zum Abrufen der aktuellen Zeit war 8 Stunden langsamer als die Standardzeitzone.

Lösung:

Lösung 1. Dockerfile ändern

Stellen Sie die Zeitzone des Alpine Linux-Systems ein. Suchen Sie in der Dokumentation zu Alpine Linux nach Informationen dazu, wie Sie die Zeitzone über das tzdata-Paket einstellen können. Fügen Sie beim Erstellen des Docker-Images diesen Satz zum Dockerfile hinzu:

Führen Sie den Befehl apk --update add tzdata && \ aus.
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asien/Shanghai" > /etc/Zeitzone && \
    apk del tzdata && \
    rm -rf /var/cache/apk/*

Vollständiges Dockerfile

VON openjdk:8-jre-alpine3.9

Führen Sie den Befehl apk --update add tzdata && \ aus.
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asien/Shanghai" > /etc/Zeitzone && \
    apk del tzdata && \
    rm -rf /var/cache/apk/*

# kopiere die gepackte JAR-Datei in unser Docker-Image
KOPIEREN application.jar /application.jar

Dokumentlink:

wiki.alpinelinux.org/wiki/Einstellung…

Lösung 2. Legen Sie die Standardzeitzone des JVM-Systems fest

Legen Sie beim Starten des Docker-Image die Zeitzone fest, indem Sie die JVM-Umgebungsvariable user.timezone festlegen.

java -jar -Duser.timezone=Asia/Shanghai app.jar

Lösung 3. Mounten Sie die Zeitzonendatei des Hostcomputers in den Docker-Container

Die Clusterlösung verwendet K8S. Mounten Sie beim Bereitstellen die Zeitzonendatei des Hosts in den Docker-Container.

API-Version: Apps/v1
Art: Bereitstellung
Metadaten:
  Name: SERVICE_NAME
Spezifikation:
  Replikate: 1
  Wähler:
    Übereinstimmungsetiketten:
      App: SERVICE_NAME
  Vorlage:
    Metadaten:
      Beschriftungen:
        App: SERVICE_NAME
    Spezifikation:
      Behälter:
      - Name: SERVICE_NAME
        Bild: IMAGE_TAG
        imagePullPolicy: Immer
        Häfen:
        - ContainerPort: 80
      	Volumenhalterungen:
        - Name: tz-config
          Einhängepfad: /etc/localtime
      Bände:
      - Name: tz-config
        Hostpfad:
           Pfad: /etc/localtime

Überprüfen Sie, ob es normal läuft

Datum -R

Referenzdokumente:

quaded.com/docker-apli…

blog.csdn.net/jeikerxiao/…

Dies ist das Ende dieses Artikels zur Lösung des Zeitzonenproblems des Docker Alpine-Image. Weitere relevante Inhalte zur Zeitzone des Docker Alpine-Image finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Problemlösungsvorgänge für Alpine Docker-Bildschriftarten
  • Implementierung eines Tomcat-Images, das mit Dockerfile basierend auf Alpine erstellt wurde
  • Implementierung eines Crawler-Scrapy-Image, das von Dockerfile basierend auf Alpine erstellt wurde
  • So erstellen Sie ein php-nginx-alpine-Image von Grund auf in Docker

<<:  Beschreibung des hr-Tags in verschiedenen Browsern

>>:  Eine ausführliche Zusammenfassung der Überlegungen zu MySQL-Zeiteinstellungen

Artikel empfehlen

JavaScript-Implementierung des Spiels des Lebens

Inhaltsverzeichnis Konzept-Einführung Logische Re...

Lösung für mobile Browser, die die Position nicht unterstützen: Fix

Die konkrete Methode ist wie folgt: CSS Code Code...

Zusammenfassung der vier Möglichkeiten zum Durchlaufen eines Arrays in JS

Dieser Artikel vergleicht und fasst vier Möglichk...

So verwenden Sie Docker-Compose, um Django-Anwendungen offline bereitzustellen

Inhaltsverzeichnis Installieren Sie Docker-ce für...

So beheben Sie den MySQL-FEHLER 1045 (28000) - Zugriff wegen Benutzer verweigert

Problembeschreibung (die folgende Diskussion besc...

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Super ausführliches Tutorial zur Installation und Konfiguration von MySQL8.0.22

Hallo zusammen, heute lernen wir die Installation...

Detaillierte Erklärung der Vuex-Umgebung

Inhaltsverzeichnis Erstellen Sie eine Vuex-Umgebu...