[LINUX] Modifier le fuseau horaire dans Oracle Database Docker

Aperçu

Il s'agit de la procédure de modification du fuseau horaire dans Docker of Oracle Database.

L'article suivant a été très utile pour la procédure d'installation de Docker dans Oracle Database. Utilisation d'Oracle Database avec Docker

Pour la procédure détaillée, veuillez vous référer au référentiel officiel. https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md

environnement

Conclusion

Tout ce que vous avez à faire est de définir la variable d'environnement TZ dans docker-compose.yaml.

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/Tokyo ★★★ Ce ★★★

Enregistrement des allers-retours

(*) Ci-dessous, je laisserai un mémorandum du processus d'enquête. Il est complètement aux pieds de serpent, alors veuillez ne voir que ceux qui sont intéressés.

En utilisant Oracle Database Docker, j'ai remarqué que le résultat de l'exécution de la fonction SYSDATE était UTC. Lorsque je me suis connecté au conteneur avec docker exec et que j'ai appuyé sur la commande de date, c'était, comme prévu, UTC.

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

Pour changer le fuseau horaire du serveur Linux, vous pouvez utiliser timedatectl (série RHEL7 / série CentOS7) ou copier le fichier de réglage du fuseau horaire (/ usr / share / zoneinfo).

Lorsque j'ai vérifié les informations du système d'exploitation, c'était RHEL 7.7.

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

Lorsque j'essaye de frapper timedatectl dans le conteneur, j'obtiens une erreur.

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

Après enquête, j'ai trouvé des informations selon lesquelles cela peut être causé par l'autorisation d'exécution du conteneur, et cela peut être résolu en définissant le mode privilégié (privilégié) ou en modifiant le paramètre de capacité. , Impossible de résoudre. (*) Si quelqu'un connaît les informations, il serait utile que vous puissiez me le faire savoir.

Par conséquent, j'ai décidé de le gérer en copiant le fichier de réglage du fuseau horaire.

#Vous pouvez également définir un lien symbolique
# 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

Connectez-vous au conteneur en tant qu'utilisateur root car il était en colère en raison d'un manque d'autorisations.

PS > docker exec -it --user root {Nom du conteneur} /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

Une erreur peu claire s'est produite. .. .. Lorsque j'ai cherché sur Google, j'ai trouvé un article qui correspond à un phénomène similaire.

Logging in as root on Oracle Database Docker image

D'après l'article, vous devriez utiliser l'option --workdir pour écraser le paramètre WORKDIR dans le Dockerfile [^ 1], donc je vais essayer.

PS > docker exec -it --user root --workdir / {Nom du conteneur} /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

Ça s'est bien passé. Cependant, dans ce cas, il est plus facile de changer la variable d'environnement TZ, donc je pense qu'il vaut mieux pratiquer cela.

[^ 1]: Il semble que cela soit dû au fait que WORKDIR / home / oracle est spécifié dans le Dockerfile qui est la source de l'image. (https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/Dockerfile#L105)

Recommended Posts

Modifier le fuseau horaire dans Oracle Database Docker
Apprentissage par renforcement dans les plus brefs délais avec Keras avec OpenAI Gym
Touchez NoSQL avec Python à l'aide d'Oracle NoSQL Database Cloud Simulator
J'ai essayé de décrire le trafic en temps réel avec WebSocket
Comment obtenir la différence de date et d'heure en secondes avec Python
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
Modifions automatiquement la palette de couleurs d'iTerm2 en fonction de l'heure de la journée
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python
Trouvez un tournant! [Extraction des points de modification dans les séries chronologiques avec l'outil de recherche de modifications]
Avec l'avènement de systemd-homed en 2020, la gestion des utilisateurs Linux changera radicalement.
Accéder à l'API Docker Remote avec des requêtes
Exécutez IDCF Cloud CLI sur Docker
Comportement lors du retour dans le bloc with
Derrière le flyer: utiliser Docker avec Python
Définir le fuseau horaire sur l'heure standard japonaise
Afficher Python 3 dans le navigateur avec MAMP
Changer la liste dans l'instruction for
MongoDB avec Python pour la première fois
[IOS] Modifiez la durée d'affichage de chaque image de l'animation GIF dans Pythonista3.
Visualisez les informations du capteur d'accélération de la carte micro-ordinateur en temps réel avec mbed + Python
J'étais en difficulté car le comportement du conteneur docker n'a pas changé
Obtenir l'heure Unix de l'heure spécifiée par JST quel que soit le fuseau horaire du serveur avec Python
Ce que j'ai fait quand je suis resté coincé dans le délai avec lambda python
Fuseau horaire
Transformez plusieurs listes avec l'instruction for en même temps en Python
Agrégation pratique de séries chronologiques avec TimeGrouper de pandas
Connectez-vous à un serveur distant avec SSH
Hello World avec gRPC / go dans l'environnement Docker
[Python] Récupérez les fichiers dans le dossier avec Python
Préparer l'environnement d'exécution de Python3 avec Docker
Démarrez Caddy avec docker sans mettre Caddy dans CentOS8
Modifiez l'étiquette du périphérique (lecteur) au format vfat.
Changer la taille de police de la légende dans df.plot
[Python3] Une histoire bloquée avec la conversion du fuseau horaire
Qu'est-ce que wheezy dans l'image Docker Python?
[Automation] Extraire le tableau en PDF avec Python
Utilisez Logger avec Python pour le moment
J'ai joué avec Floydhub pour le moment
Vous ne pouvez pas changer aspect_ratio avec sympy.plotting? À propos de l'affaire
Lire la sortie du sous-processus, ouvrir en temps réel
Déterminez les nombres dans l'image prise avec la webcam
Détecter les dossiers avec la même image dans ImageHash
Démarrez Nginx avec docker sans Nginx dans CentOS8
Boucle les variables en même temps dans le modèle
Essayez de convertir des vidéos en temps réel avec OpenCV
L'histoire qui s'inscrit dans l'installation de pip
Changer les mots réservés du moteur de modèle Flask
Écrivez ceci dans le fichier ttl pour le moment pour la connexion SSH automatique avec Teraterm
Sortie de la table spécifiée de la base de données Oracle en Python vers Excel pour chaque fichier