[LINUX] Ändern Sie die Zeitzone in Oracle Database Docker

Überblick

Dies ist das Verfahren zum Ändern der Zeitzone in Docker of Oracle Database.

Der folgende Artikel war sehr hilfreich für die Installation von Docker in Oracle Database. Verwenden der Oracle-Datenbank mit Docker

Ausführliche Informationen zum Verfahren finden Sie im offiziellen Repository. https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md

Umgebung

Fazit

Sie müssen lediglich die Umgebungsvariable TZ in docker-compose.yaml festlegen.

version: '2'
services:
  db:
    image: oracle/database:12.1.0.2-se2
    container_name: oracle
    ports:
      - 1521:1521
      - 5500:5500
    volumes:
      - ./oradata:/opt/oracle/oradata
    environment:
      - ORACLE_PWD=Oracle01
      - ORACLE_PDB=pdb01
      - TZ=Asia/Tokio ★★★ Dies ★★★

Aufzeichnung des Hin- und Hergehens

(*) Im Folgenden werde ich ein Memorandum über den Untersuchungsprozess hinterlassen. Es ist komplett schlangenfüßig, also sehen Sie bitte nur diejenigen, die interessiert sind.

Bei der Verwendung des Oracle Database Docker habe ich festgestellt, dass das Ergebnis der Ausführung der Funktion "SYSDATE" UTC war. Als ich mich mit Docker Exec mit dem Container verband und den Datumsbefehl drückte, war es wie erwartet UTC.

$ date
Sat Feb  1 15:07:28 UTC 2020

Um die Zeitzone des Linux-Servers zu ändern, können Sie timedatectl (RHEL7-Serie / CentOS7-Serie) verwenden oder die Zeitzoneneinstellungsdatei (/ usr / share / zoneinfo) kopieren.

Als ich die Betriebssysteminformationen überprüfte, war es RHEL 7.7.

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)

Wenn ich versuche, timedatectl im Container zu drücken, wird eine Fehlermeldung angezeigt.

$ timedatectl
Failed to create bus connection: No such file or directory

(*) Wenn jemand die Informationen kennt, wäre es hilfreich, wenn Sie mich wissen lassen könnten.

Aus diesem Grund habe ich mich entschlossen, die Zeitzoneneinstellungsdatei zu kopieren.

#Sie können auch einen symbolischen Link festlegen
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

$ cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
cp: cannot create regular file '/etc/localtime': Permission denied

Ich war wütend wegen fehlender Berechtigungen, deshalb melde ich mich als Root-Benutzer beim Container an.

PS > docker exec -it --user root {Containername} /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "chdir to cwd (\"/home/oracle\") set in config.json failed: permission denied": unknown

Ein unklarer Fehler ist aufgetreten. .. .. Als ich gegoogelt habe, habe ich einen Artikel gefunden, der einem ähnlichen Phänomen entspricht.

Logging in as root on Oracle Database Docker image

Laut Artikel sollten Sie die Option --workdir verwenden, um die Einstellung WORKDIR in der Docker-Datei [^ 1] zu überschreiben, also werde ich es versuchen.

PS > docker exec -it --user root --workdir / {Containername} /bin/bash
bash-4.2# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
bash-4.2# date
Sun Feb  2 21:55:24 JST 2020

Es ging gut.

[^ 1]: Es scheint, dass dies durch die Tatsache verursacht wird, dass "WORKDIR / home / oracle" in der Docker-Datei angegeben ist, die die Quelle des Bildes ist. (https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile#L105)

Recommended Posts

Ändern Sie die Zeitzone in Oracle Database Docker
Verstärkungslernen in kürzester Zeit mit Keras mit OpenAI Gym
Berühren Sie NoSQL mit Python mithilfe des Oracle NoSQL Database Cloud Simulators
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Lassen Sie uns das Farbschema von iTerm2 je nach Tageszeit automatisch ändern
Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python
Finde einen Wendepunkt! [Extrahieren von Änderungspunkten in Zeitreihen mit dem Änderungsfinder]
Mit dem Aufkommen von systemd-homed im Jahr 2020 wird sich die Linux-Benutzerverwaltung dramatisch ändern.
Greifen Sie mit Requests auf die Docker Remote API zu
Führen Sie IDCF Cloud CLI auf Docker aus
Verhalten bei der Rückkehr in den with-Block
Hinter dem Flyer: Docker mit Python verwenden
Stellen Sie die Zeitzone auf japanische Standardzeit ein
Zeigen Sie Python 3 im Browser mit MAMP an
Ändern Sie die Liste in der for-Anweisung
MongoDB mit Python zum ersten Mal
[IOS] Ändern Sie die Anzeigezeit für jedes Bild der GIF-Animation in Pythonista3.
Visualisieren Sie Informationen zum Beschleunigungssensor von der Mikrocomputerplatine in Echtzeit mit mbed + Python
Ich war in Schwierigkeiten, weil sich das Verhalten des Docker-Containers nicht geändert hat
Abrufen der Unix-Zeit der von JST angegebenen Zeit unabhängig von der Zeitzone des Servers mit Python
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte
Zeitzone
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas
Melden Sie sich mit SSH bei einem Remote-Server an
Hallo Welt mit gRPC / go in Docker-Umgebung
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Starten Sie Caddy mit Docker, ohne Caddy in CentOS8 zu integrieren
Ändern Sie die Gerätebezeichnung (Laufwerk) im vfat-Format.
Ändern Sie die Schriftgröße der Legende in df.plot
[Python3] Eine Geschichte, die bei der Zeitzonenkonvertierung steckt
Was ist im Docker Python-Image pfeifend?
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Verwenden Sie vorerst Logger mit Python
Ich habe vorerst mit Floydhub gespielt
Kann aspect_ratio mit sympy.plotting nicht geändert werden? Über die Sache
Lesen Sie die Ausgabe von subprocess.Popen in Echtzeit
Bestimmen Sie die Zahlen in dem mit der Webkamera aufgenommenen Bild
Erkennen Sie Ordner mit demselben Bild in ImageHash
Starten Sie Nginx mit Docker ohne Nginx in CentOS8
Schleifen Sie gleichzeitig Variablen in der Vorlage
Versuchen Sie, Videos mit OpenCV in Echtzeit zu konvertieren
Die Geschichte, die zur Installation von Pip passt
Ändern Sie die reservierten Wörter der Flask Template Engine
Schreiben Sie dies vorerst in die ttl-Datei für die automatische SSH-Anmeldung mit Teraterm
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus