Exécution de JMap Server en conteneur Docker

 

Produit concerné

JMap Server

Versions

7 Jakarta +

 

Depuis JMap 7.0 Jakarta, il est possible d'exécuter JMap Server dans un conteneur Docker. Cela permet de facilement déployer des instances de JMap Server dans votre environnement Docker avec tous les avantages que cela comporte.

L'exécution de JMap Server dans Docker est simple et similaire à la manière traditionnelle (avec programme d'installation). La principale différence concerne le stockage des données lues et écrites par JMap Server. Comme il est impossible d'écrire dans un conteneur Docker, ces données doivent résider ailleurs sur le serveur. Il faut prévoir deux espaces de stockage, aussi appelés volumes.

Un premier volume est utilisé pour le stockage des données systèmes écrites par JMap Server (configurations, journaux, etc.). Nous l'appelons le volume de données systèmes de JMap.

Un deuxième volume est utilisé pour y déposer des fichiers de données spatiales qui seront lues par JMap Server. Nous l'appelons le volume de données spatiales de JMap.

Pré-requis

Avant de débuter, assurez-vous d'avoir les pré-requis suivants :

  • Compte sur Docker Hub (https://hub.docker.com) pour le téléchargement des images Docker.

  • Docker Engine installé et exécuté sur votre serveur (https://www.docker.com).

  • Un répertoire pour le volume des données systèmes de JMap. Par exemple :

Linux : /home/your_user/jmapserver/systemconfig Windows : C:/jmapserver/systemconfig
  • Un répertoire pour le volume des données spatiales de JMap. Par exemple :

Linux : /home/your_user/jmapserver/data Windows : C:/jmapserver/data

Créer et lancer le conteneur de JMap Server la première fois

Exécutez la commande suivante au terminal pour créer et lancer le conteneur :

Linux :

docker run -e TZ=America/New_York -it -e LOCAL_USER_ID=`id -u $USER` -e VM_OPTIONS_XMX=4g -p 8080:8080 -p 7003:7003 -d -v /home/your_user/jmapserver/systemconfig:/opt/jmap/systemconfig -v /home/your_user/jmapserver/data:/opt/jmapdata --name jmapserver k2geospatial/jmap:7_Jakarta_latest

Windows :

 

-e LOCAL_USER_ID=`id -u $USER` indique à Docker d'écrire les données en tant que le compte utilisé dans la session courante.

-e VM_OPTIONS_XMX=4g alloue 4 gigaoctets à la JVM. La valeur par défaut est de 2 gigaoctets si cette variable d'environnement n'est pas spécifiée.

-p 7003 et 8080 définissent les ports par lesquels JMap Server sera accessible.

-v /home/your_user/jmapserver/systemconfig:/opt/jmap/systemconfig indique que le volume des données systèmes de JMap est dans le répertoire /home/jmapserver/systemconfig du serveur et qu'il sera monté dans /opt/jmap/systemconfig.

-v /home/your_user/jmapserver/data:/opt/jmapdata indique que le volume des données spatiales de JMap est dans le répertoire /home/jmapserver/data du serveur et qu'il sera monté dans /opt/jmapdata.

--name jmapserver détermine que le nom du nouveau conteneur sera jmapserver. Ce nom sera utilisé par la suite pour contrôler le conteneur.

k2geospatial/jmap:latest est le nom de l'image Docker la plus récente de JMap. Elle sera téléchargée depuis Docker Hub. Il est aussi possible de demander une version en particulier en spécifiant par exemple k2geospatial/jmap:7_jakarta.

-d execute la console map server en arrière-plan. Cela signifie que vous ne verrez pas la console fonctionner dans le terminal. Paramètre optionnel.

-e TZ=America/New_York établit le fuseau horaire.

Placer le fichier de licence

Après la création et l'exécution du conteneur, JMap Server s'arrête automatiquement car il ne trouve pas de fichier de licence. Comme avec l'installation traditionnelle, un fichier activationkey.txt est généré automatiquement et doit être transmis à l'équipe de K2 Geospatial à travers le Portail de support pour la création du fichier de licence (jmap.license). Le fichier activationkey.txt est généré à la racine du volume des données systèmes de JMap.

Placez le fichier jmap.license à la racine du volume des données systèmes de JMap (même répertoire que le fichier activationkey.txt).

Démarrer le conteneur de JMap Server

Une fois le conteneur créé et démarré une première fois, et une fois le fichier de licence bien placé, utilisez cette commande pour démarrer le conteneur :

jmapserver  est le nom du conteneur.

Arrêter le conteneur de JMap Server

Quand le conteneur est démarré, utilisez cette commande pour l'arrêter :

jmapserver  est le nom du conteneur.

Consulter la console de JMap Server

Que le conteneur soit démarré ou arrêté, utilisez cette commande pour consulter la console de JMap Server :

-f permet de suivre en continu la console.
jmapserver est le nom du conteneur.

Mettre à jour JMap Server

Il est simple de mettre à jour une installation de JMap Server en conteneur Docker. La procédure consiste à télécharger une image plus récente et à relancer le conteneur.

1. Arrêtez le conteneur s'il est en fonction :

2. Effacez le conteneur. Aucune donnée ne sera perdue.

3. Exécutez à nouveau la commande docker run en spécifiant la nouvelle image en paramètre.

Installer une extension

Les extensions peuvent être installées dans votre environnement JMap et Docker en suivant les étapes suivantes :

1. Créez un répertoire scripts dans le volume de données systèmes. Par exemple :

2. Placez le script d'installation de l'extension dans le répertoire scripts. Il s'agit du fichier .sh qui sert à l'installation de l'extension sur Linux. Par exemple :

3. Redémarrez le conteneur.