Dockerizer une application depuis le code source
Considérons le contexte suivant:
Vous êtes un opérateur travaillant avec une équipe de développeur. L'équipe de dev viens de vous livrer le code source d'une application web que vous devez déployer sous Docker.
L'application est codé en NodeJS et a pour but d'afficher un message à partir d'un fichier de configuration. Le code source de l'application se trouve à l'emplacement suivant: NodeJS app
Les développeurs vous donnent les instructions suivantes:
- L'application peut se lancer avec NodeJS 15+
- Pour fonctionner, elle va charger au démarrage le fichier de configuration
./config.yamlqui doit lui être mis à disposition. Les devs vous fournissent le fichier de config testé en développement:# Message to print when app is accessed via a web browser message: "Test message from dev" # Host and port on which to bind server hostname: 127.0.0.1 port: 8080 - Instructions d'utilisation de l'application:
# Install Node dependencies # Require package.json and package-lock.json npm install # Run node app node app.js # App should not respond to web request # For example, localhost:8080
Vous devez dockeriser l'application:
- Ecrire un
Dockerfilepermettant de builder l'application - Ecrire un
docker-compose.ymlpermettant de lancer l'application:- Assurez-vous de monter un fichier
config.yamldans le container
- Assurez-vous de monter un fichier
- Lancer l'application et vérifier qu'elle soit joignable
Note: ⚠️ attention avec l'image node: lancer npm install à la racine du système de fichier (dossier /) provoque un bug du type "idealTree" already exists. Cf. ce post Stack Overflow. Penser à utiliser un WORKDIR au préalable.