Foilen Cloud

Application Générique

Table des matières

Description

Il est toujours plus simple d’utiliser une ressource spécifique pour créer des applications (comme MariaDB Server pour exécuter une base de données MariaDB), mais quand il n’y a pas de ressource spécifique ou qu’une tâche récurrente (cron) soit utilisée, il est possible de créer une application sur mesure avec le Composable Application.

Diagramme des ressources à créer

graph LR ComposableApplication -- RUN_AS --> UnixUser ComposableApplication -- INSTALLED_ON --> Machine ComposableApplication -- ATTACHED --> AttachablePart

Diagramme des ressources générées

Le ComposableApplication crée une application qui est installée sur la Machine choisie et s’exécute en tant que le UnixUser choisi.

graph LR A[Application] A -- RUN_AS --> UnixUser A -- INSTALLED_ON --> Machine

Créer l’utilisateur Unix de l’application

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Unix User
  2. Choisir le propriétaire
  3. Entrer le nom
  4. Pour Installer sur, choisir une machine
  5. Cliquer sur Créer

Créer l’application

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Composable Application
  2. Choisir le propriétaire
  3. Entrer le nom de l’application
  4. Pour Champ “From” dans le Dockerfile, entrer le nom complet (ex: ubuntu:18.04)
  5. Pour Commande principale à exécuter, entrer la commande et les arguments
  6. Pour Répertoire de travail principal, entrer le répertoire désiré ou “/” s’il n’y a pas de préférence
  7. Pour configurer des variables d’environnement Linux, ajouter dans Environements (le format est NAME=VALUE)
  8. Pour ouvrir un port publiquement, ajouter dans Exposer un port TCP ou UDP
  9. Pour utiliser un port à l’interne sans nécessairement l’exposer publiquement, ajouter dans Endpoints (le format est CONTAINER_PORT:ENDPOINT_NAME) (ex: pour pointer un Website dessus et que le port ouvert est 8080, mettre “8080:HTTP_TCP”)
  10. Pour Utilisateur unix par défaut, choisir l’utilisateur Unix précédemment créé
  11. Pour Installer sur, choisir la même machine que celle où l’utilisateur Unix est installé
  12. Vous pouvez ajouter différents attachements avec les Parties. Voir section suivante pour des exemples
  13. Cliquer sur Créer

Les parties attachables

Attachable Apt Install

Si l’image Docker est basée sous Debian, il est possible d’installer des applications supplémentaires en utilisant apt. Ce composant va installer tous les modules supplémentaires ou applications.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Apt Install
  2. Choisir le propriétaire
  3. Entrer un nom
  4. Ajouter le nom des paquets à installer (ex: “curl”, “vim”, “php-gmp”, …)
  5. Cliquer sur Créer

Attachable Container User To Change Id

Les images Docker contiennent souvent des utilisateurs et des fichiers qui ne sont accessibles ou modifiables que par cet utilisateur. Supposons un utilisateur interne nommé “www-data” avec le id “100” et un utilisateur Unix dans le Foilen Infra qui exécute l’application et qui s’appelle “bob” avec le id “70123”. Pour que “bob” puisse utiliser les fichiers appartenant à “www-data” dans le conteneur, il faut changer le id de l’utilisateur interne “www-date” ainsi que le id de tous les fichiers lui appartenant à “70123”. Ce composant s’occupe de faire ces deux étapes.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Container User To Change Id
  2. Choisir le propriétaire
  3. Entrer un nom de l’utilisateur dans le conteneur
  4. Pour L’utilisateur à changer le id pour, choisir l’utilisateur Unix qui exécute l’application
  5. Cliquer sur Créer

Attachable Cron Job

Ce composant est spécial parce qu’il va transformer l’application en simple cron job. C’est-à-dire que la commande principale est censée être une tâche qui s’exécute et s’arrête périodiquement plutôt qu’un service qui roule de façon permanente.

Comme prérequis, l’application “cron” doit être disponible dans l’image Docker. Si elle n’est pas présente dans l’image qui vous intéresse, mais que l’image est basée sous Debian, vous pouvez installer le paquet “cron” en utilisant un Attachable Apt Install.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Cron Job
  2. Choisir le propriétaire
  3. Entrer un nom
  4. Entrer une description si désirée
  5. Pour Temps (minute heure jour mois jourDeLaSemaine), choisir la fréquence d’exécution. Exemples:
  6. Cliquer sur Créer

Attachable Service

Chaque application a au moins une commande qui est exécutée, mais il est aussi possible d’exécuter plusieurs commandes en ajoutant des services.

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Service
  2. Choisir le propriétaire
  3. Entrer un nom
  4. Entrer la commande
  5. Pour Répertoire de travail, entrer le répertoire désiré ou “/” s’il n’y a pas de préférence
  6. Pour Utilisateur unix, choisir l’utilisateur Unix qui va exécuter la commande
  7. Cliquer sur Créer

Attachable Volume Folder

Par défaut, l’application roule entièrement dans le conteneur Docker et n’a pas accès à d’autres fichiers que ceux contenus dans l’image. Entre chaque mise à jour du conteneur, les fichiers créés dans le conteneur sont perdus. Ce n’est pas un problème si l’application n’utilise qu’une base de données et n’a pas besoin de persister des fichiers, mais si c’est nécessaire, il est mieux d’utiliser un volume.

Il y a deux types de volumes:

  1. Des volumes temporaires
  2. Des volumes qui sont des répertoires à l’extérieur de Docker (normalement des sous-répertoires dans le home de l’utilisateur Unix)

Le premier cas est quand même rare puisque comme énoncé précédemment, le conteneur lui-même contient les fichiers temporaires. Par contre, il y a parfois des applications qui utilisent des fonctionnalités spéciales des systèmes de fichiers et qui ne supportent pas le système de fichiers dans Docker. La création d’un volume temporaire permet d’utiliser un système de fichiers normal. Pour créer ce type de volume, il suffit de laisser le champ Répertoire de l’hôte (optionnel) vide.

Le second cas est le plus usuel. Pour le configurer, il faut donner un répertoire hôte (ex: /home/monutilisateur/web) et un répertoire dans le conteneur Docker (ex: /var/www).

  1. Aller sur Foilen Infra dans l’onglet Extensions (https://infra.foilen.com/plugin/list) et cliquer sur Attachable Volume Folder
  2. Choisir le propriétaire
  3. Pour Répertoire de l’hôte (optionnel), entrer le répertoire sur la machine elle-même (ex: /home/monutilisateur/web) ou laisser vide pour un volume temporaire
  4. Pour Répertoire dans le conteneur, entrer le répertoire dans le conteneur Docker (ex: /var/www)
  5. Cliquer sur Créer