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.
Pour Champ “From” dans le Dockerfile, entrer le nom complet (ex: ubuntu:18.04)
Pour Commande principale à exécuter, entrer la commande et les arguments
Pour Répertoire de travail principal, entrer le répertoire désiré ou “/” s’il n’y a pas de préférence
Pour configurer des variables d’environnement Linux, ajouter dans Environements (le format est NAME=VALUE)
Pour ouvrir un port publiquement, ajouter dans Exposer un port TCP ou UDP
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”)
Pour Utilisateur unix par défaut, choisir l’utilisateur Unix précédemment créé
Pour Installer sur, choisir la même machine que celle où l’utilisateur Unix est installé
Vous pouvez ajouter différents attachements avec les Parties. Voir section suivante pour des exemples
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.
Ajouter le nom des paquets à installer (ex: “curl”, “vim”, “php-gmp”, …)
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.
Pour L’utilisateur à changer le id pour, choisir l’utilisateur Unix qui exécute l’application
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.
Pour Répertoire de travail, entrer le répertoire désiré ou “/” s’il n’y a pas de préférence
Pour Utilisateur unix, choisir l’utilisateur Unix qui va exécuter la commande
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:
Des volumes temporaires
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).
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
Pour Répertoire dans le conteneur, entrer le répertoire dans le conteneur Docker (ex: /var/www)