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

Ausführliche Erklärung des Sperrmechanismus in MySQL

Vorwort Um die Konsistenz und Integrität der Date...

Tutorial zur Installation und Deinstallation von Python3 unter Centos7

1. Installieren Sie Python 3 1. Installieren Sie ...

Führen Sie die folgenden Schritte aus, um Vue-Router in Vue3 zu verwenden

Vorwort Die Verwaltung des Routings ist eine wese...

So fragen Sie doppelte Daten in einer MySQL-Tabelle ab

INSERT INTO hk_test(Benutzername, Passwort) VALUE...

Implementierung zum Hinzufügen von Bemerkungsinformationen zu MySQL

Vorwort Einige Leute haben mich in diesen Tagen u...

VMWare Linux MySQL 5.7.13 Installations- und Konfigurationstutorial

In diesem Artikel finden Sie das Tutorial zur Ins...

Detaillierte Erklärung zum MySQL-Datenarchivierungstool mysql_archiver

Inhaltsverzeichnis I. Überblick 2. pt-archiver Ha...

Einführung in die Verwendung des Select-Optgroup-Tags in HTML

Gelegentlich muss ich ausgewählte Inhalte gruppier...

Die normale Methode der MySQL-Deadlock-Prüfungsverarbeitung

Normalerweise wird bei einem Deadlock die Verbind...

Natives JS zum Erzielen eines Schiebeknopfeffekts

Der spezifische Code des mit Js erstellten Schieb...