DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion de HFSQL Client/Serveur
  • Présentation
  • Comment le faire ?
  • Configuration nécessaire
  • Exécution de l'image (création du conteneur)
  • Notes (important)
  • Réplication Serveur à Serveur
  • Exemple de réplication bidirectionnelle entre deux conteneurs docker HFSQL
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
A partir de la version 22, un conteneur Docker contenant le serveur HFSQL est présent dans Docker Hub :
https://hub.docker.com/r/windev/hfsql
L'installation d'un serveur HFSQL devient simplissime : 1 ligne à taper ou à scripter !
Remarque : Seule la version 64 bits est disponible.
Comment le faire ?

Configuration nécessaire

La distribution Linux utilisée n'a pas d'importance. Cependant, pour utiliser le conteneur Docker contenant le serveur HFSQL, il est nécessaire de maîtriser Docker et notamment il est nécessaire de :
  • savoir installer un nouveau conteneur à partir de l'image Docker du serveur HFSQL,
  • gérer au moins un volume nécessaire à la persistance des données,
  • gérer la configuration réseau à l'intérieur de Docker.

Exécution de l'image (création du conteneur)

  • Le nom de l'image prédéfinie est :
    "windev/hfsql:<FR/US><Version>"
  • Pour avoir une persistance des données (par exemple en cas changement de l'image), il faut :
    • Utiliser un volume. La commande de création d'un volume :
      "docker volume create <NomVolume>"
    • Monter le volume dans le conteneur sur
      "/var/lib/hfsql"
  • Exemple de ligne de commande :
    sudo docker run -d
    --restart unless-stopped
    --name HFSQL_DOCKER
    --volume <NomVolume>:/var/lib/hfsql
    --publish 4923:4900
    windev/hfsql:FR290053b
    Dans cette ligne de commande, les paramètres sont les suivants :
    • "name": indique le nom du conteneur.
    • "volume" : indique le "binding" entre le volume et le répertoire défini dans le conteneur. Dans la configuration du serveur HFSQL, le chemin des bases de données sera vu comme "var/lib/hfsql".
    • "publish": indique le port d'accès au conteneur (4923 dans cet exemple) et la redirection vers le port à l'intérieur du conteneur (4900: le port standard de HFSQL).
      Dans cet exemple, le serveur sera donc accessible sur le port 4923 du serveur docker.
    • le nom du paquet docker et la version HFSQL ("FR270053b" dans cet exemple).

Notes (important)

  • A la création du conteneur, si les bases n'existent pas, il est possible de définir des variables d'environnement, par exemple, via la syntaxe :
    -e HFSQL_RANDOM_PASSWORD=yes

    Il est possible d'utiliser une des trois variables suivantes (ou rien pour le mode par défaut "admin") :
    • HFSQL_PASSWORD : Mot de passe du compte initial.
    • HFSQL_PASSWORD_FILE : Chemin du fichier qui contient le mot de passe du compte initial.
    • HFSQL_RANDOM_PASSWORD : Le mot de passe du compte initial est généré aléatoirement
      Il est affiché sur la sortie standard et peut être retrouvé dans les logs avec la commande
      docker logs HFSQL_DOCKER
    Il est également possible d'utiliser la variable suivante (facultatif) : HFSQL_USER : Nom du compte (admin par défaut).
  • Rappel des commandes de base de docker :
    • Arrêt d'un conteneur :
      "docker stop <ID>"
    • Redémarrage d'un conteneur :
      "docker start <ID>"

Réplication Serveur à Serveur

La réplication "Serveur à Serveur" n'est pas possible avec l'image HFSQL Docker par défaut.
Pour réaliser ce type de réplication, il faut faire une image dérivée en ajoutant le port utilisé pour la réplication.
La nouvelle image docker créée peut être par exemple :
FROM windev/hfsql:29.0.062
EXPOSE 4996

Exemple de réplication bidirectionnelle entre deux conteneurs docker HFSQL

Pour mettre en place une réplication bidirectionnelle entre deux conteneurs docker HFSQL qui tournent sur la même machine :
  1. Créer un fichier Dockerfile avec ce contenu :
    FROM windev/hfsql:FR270083
    EXPOSE 4996
    EXPOSE 4997
  2. Créer l'image Docker avec cette ligne de commande (le point final est important) :
    sudo docker build --force-rm -t hfsql:replication .
  3. Créer un volume pour le premier serveur :
    sudo docker volume create vol_hfsql_4901
  4. Installer et lancer le premier serveur :
    sudo docker run -dit --restart unless-stopped --name HFSQL_4901
    --volume vol_hfsql_4901:/var/lib/hfsql
    --publish 4901:4900
    --publish 4996:4996 hfsql:replication
  5. Créer un volume pour le second serveur :
    sudo docker volume create vol_hfsql_4902
  6. Installer et lancer le second serveur:
    sudo docker run -dit --restart unless-stopped --name HFSQL_4902
    --volume vol_hfsql_4902:/var/lib/hfsql --publish 4902:4900
    --publish 4997:4997 hfsql:replication
Le reste de la configuration se fait dans le Centre de Contrôle HFSQL (méthode habituelle pour créer une réplication bidirectionnelle entre deux serveurs).
Version minimum requise
  • Version 22
Documentation également disponible pour…
Commentaires
Sauf plateforme arm64
Ne fonctionne pas sur arm64.
CLEROY
06 déc. 2021

Dernière modification : 21/07/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale