Skip to content

guillaume-elambert/stage-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stage-docker

Sommaire


1. Introduction

Ce dépôt contient les fichiers permettant de créer deux conteneurs :


2. Configuration

Le fichier de configuration se trouve dans le fichier config. Cette configuration permet de définir comment seronts construits et exécutés les conteneurs.

2.1. Liste des paramètres

Dans cette section se trouve la liste de l'ensemble des paramètres utilisés lors de la création et de l'exécution des conteneurs.

2.1.1. Paramètres des conteneurs

Voici la liste des paramètres des conteneurs.

Paramètre Description Format
CONTAINERS_NAMES Le nom des conteneurs. Tableau
IMAGES_NAMES Le nom des images qui seront créées à partir des Dockerfile. Tableau
DOCKERFILE_PATH Le chemin vers le dossier contenant le Dockerfile à utiliser pour créé l'image du conteneur. Tableau
RUN_ARGS Les arguments utilisés lors de la création du conteneur. Tableau
(cf. docker run --help ou Documentation)
START_ARGS Les arguments utilisés lors du lancement du conteneur. Tableau
(cf. docker start --help ou Documentation)
WEBSERVICE_IP L'adresse IP du conteneur du webservice. Chaîne de caractères
⚠️ Cette variable est définit automatiquement (cf. config lignes 16 à 24). ⚠️
WEBSERVICE_PORT Le port exposé du conteneur attribué au webservice. Entier
WEBSERVICE_VOLUME_LOCAL Le chemin vers le dossier que l'on souhaite partager avec le conteneur. Chaîne de caractères (cf. Documentation)
WEBSERVICE_VOLUME_TARGET Le chemin où sera créé le lien avec le volume dans le conteneur. Chaîne de caractères (cf. Documentation)

⚠️  Les tableaux sont liés par leurs indices c.à.d. que CONTAINERS_NAMES[0], IMAGES_NAMES[0], DOCKERFILE_PATH[0], etc...
seront utilisés pour créer le même conteneur. Tous les paramètres de type tableau doivent donc IMPÉRATIVEMENT être de de la même taille !  ⚠️


2.1.2. Variables d'environnement

Voici la liste des variables d'environnement utilisées lors de l'exécution des conteneurs.

Paramètre Description Format
WEBSERVICE_IP Définit à l'explorateur de fichiers PHP où se situe le webservice. Chaîne de caractères
WEBSERVICE_PORT Définit à l'explorateur de fichiers PHP le port du web service. Entier
STARTING_DIR_FILE_EXPLORER Chemin (relatif ou non) définissant le point de départ de l'explorateur. Chaîne de caractères
STARTING_DIR_WEBSERVICE Chemin (relatif ou non) définissant le point de départ du webservice. Chaîne de caractères

2.2. Configuration du webservice

La configuration du webservice se fait à la foi par les variables "normales" et par les variables d'environnement.

2.2.1. Configuration du conteneur

Paramètre Valeur Explications
CONTAINERS_NAMES webservice Le nom du conteneur sera webservice.
IMAGES_NAMES webservice Le nom de l'image sera webservice.
DOCKERFILE_PATH ./webservice/ Le chemin vers le dossier contenant le Dockerfile pour créér l'image sera ./webservice/.
RUN_ARGS -d -p ${WEBSERVICE_PORT}:8080 -v ${WEBSERVICE_VOLUME_LOCAL}:${WEBSERVICE_VOLUME_TARGET} -e STARTING_DIR=${STARTING_DIR_WEBSERVICE} --name ${CONTAINERS_NAMES[0]} ${IMAGES_NAMES[0]} On souhaite créer un conteneur de manière détachée. On créé un mapping de port c.à.d. que l'on ouvre le port WEBSERVICE_PORT à l' extérieur du conteneur et on le lie au port 8080 à l'intérieur du conteneur. On y accède donc depuis l'adresse WEBSERVICE_IP:WEBSERVICE_PORT. On lie le volume WEBSERVICE_VOLUME_LOCAL au dossier WEBSERVICE_VOLUME_TARGET du conteneur. On définit STARTING_DIR_WEBSERVICE comme étant le dossier courrant du webservice. On donne le nom webservice au conteneur et on le créé à partir de l'image webservice.
START_ARGS On ne définit pas de paramètre de lancement. spéciaux.
WEBSERVICE_PORT 8080 On souhaite accéder au serveur Tomcat, depuis l'extérieur, sur le port 8080.

2.2.2. Configuration de l'application

Il est possible de définir des paramètres d'execution du web service grâce à des variables d'environnement. Il n'est pas obligatoire de les définir.

Paramètre Valeur Explications
STARTING_DIR Utilise la variable de configuration WEBSERVICE_VOLUME_TARGET du fichier config (cf. 2.1.1. Paramètres des conteneurs) On définit le dossier courrant du webservice comme étant celui lié au volume du conteneur.

2.3. Configuration de l'explorateur PHP

La configuration de l'explorateur de fichiers PHP se fait à la foi par les variables "normales" et par les variables d'environnement.

2.3.1. Configuration du conteneur

Paramètre Valeur Explications
CONTAINERS_NAMES encode-explorer Le nom du conteneur sera encode-explorer.
IMAGES_NAMES encode-explorer Le nom de l'image sera encode-explorer.
DOCKERFILE_PATH ./encode-explorer/ Le chemin vers le dossier contenant le Dockerfile pour créér l'image sera ./encode-explorer/
RUN_ARGS -d -p 80:80 ${WEBSERVICE_IP_ARGS}-e WEBSERVICE_PORT=${WEBSERVICE_PORT} -e STARTING_DIR=${STARTING_DIR_FILE_EXPLORER} --name ${CONTAINERS_NAMES[1]} ${IMAGES_NAMES[1]} On souhaite créer un conteneur de manière détachée. On créé un mapping de port c.à.d. que l'on ouvre le port 80 à l' extérieur du conteneur et on le lie au port 80 à l'intérieur du conteneur. On y accède donc depuis l'adresse WEBSERVICE_IP:WEBSERVICE_PORT. On définit 2 ou 3 variables d'environnement :
On donne le nom encode-explorer au conteneur et on le créé à partir de l'image encode-explorer.
START_ARGS On ne définit pas de paramètre de lancement.

2.3.2. Configuration de l'application

2.3.2.1. Fichiers de configuration

L'application de l'explorateur comporte de nombreux paramètres de configurations répartis dans les fichiers du dossier encode-explorer/application/config. Certains peuvent être définis grâce à des variables d'environnement (facultatif). Pour cela, voir la section ci-dessous.

2.3.2.2. Variables d'environnement

Il n'est pas obligatoire de définir ces varibales d'environnement.

Paramètre Valeur Explications
WEBSERVICE_IP Utilise la variable de configuration WEBSERVICE_IP du fichier config (cf. 2.1.1. Paramètres des conteneurs) Définit où se situe le webservice.
WEBSERVICE_PORT Utilise la variable de configuration WEBSERVICE_PORT du fichier config (cf. 2.1.1. Paramètres des conteneurs Définit le port du web service.
STARTING_DIR ./ On définit le point de départ de l'explorateur comme étant le dossier courrant du contener du webservice.

3. Commandes disponnibles

⚠️  L'utilisation de ces commandes nécessite que Docker soit installé sur la machine ainsi que les privilèges d'administrateur.  ⚠️

Commande Description
make build Créé l'image et les conteneurs du tableau CONTAINERS_NAMES.
make rebuild Efface les conteneurs dont le nom est dans le tableau CONTAINERS_NAMES. Créé l'image et les conteneurs du tableau CONTAINERS_NAMES.
make run Créé les conteneurs du tableau CONTAINERS_NAMES.
make start Lance les conteneurs du tableau CONTAINERS_NAMES.
make stop Arrête les conteneurs du tableau CONTAINERS_NAMES.
make clean Efface les conteneurs dont le nom est dans le tableau CONTAINERS_NAMES.

4. Première utilisation

Lors de la première utilisation, se placer dans le dossier stage-docker et suivre les instructions ou commandes suivantes :

  • make build ➔ La 1ère fois, la création des images peut prendre quelques minutes.
  • Vous pouvez vérifier que les images ont bien été créées en tapant la commande sudo docker image ls | grep -E "(encode-explorer)|(webservice)".
  • Si 2 lignes s'affichent, passez à l'étape suivante sinon lancez la commande ./scripts/build.sh et analysez les journaux d'exécution.
  • make run
  • Vous pouvez vérifier que les conteneurs ont été créés et qu'ils sont bien en fonctionnement grâce à la commande sudo docker ps | grep -E "(encode-explorer)|(webservice)". Si vous obtenez 2 lignes  🎉  FÉLICITATIONS !  🎉  L'installation s'est déroulée sans problèmes !
  • Si rien ne s'affiche, tapez sudo docker ps -a | grep -E "(encode-explorer)|(webservice) et vérifiez que vous obtenez bien 2 lignes.
  • Si 2 lignes s'affichent lancez la commande make start et réitérez l'étape précédente. Si vous obtenez 2 lignes  🎉  FÉLICITATIONS !  🎉  L'installation s'est déroulée sans (trop de) problèmes !
  • Si vous n'obtenez toujours pas de résultat lancez la commande ./scripts/run.sh et analysez les journaux d'exécution.

⚠️  En cas de problème, il est probable qu'il s'agisse d'une mauvaise configuration. Pensez à vérifier !  ⚠️