Imaginez, vous êtes en CM de Droit de l'entreprise et la prof débite 45 définitions par minute. Comment faire pour taper aussi vite !?
La solution est d'utiliser un logiciel de traitement de texte collaboratif pour prendre les notes à plusieurs.
Une des solutions est d'utiliser CodiMD (qui se nomme maintenant HedgeDoc)
À faire sur votre pc pour le moment dans un dossier quelconque (On écrit le fichier et on le met sur un nœud swarm après)
Ajoutez à la compose.yaml
services:
database:
image: postgres:11.6-alpine
environment:
- POSTGRES_USER=codimd
- POSTGRES_PASSWORD=change_password
- POSTGRES_DB=codimd
volumes:
- "${VOLUMES}/folder_name/database-data:/var/lib/postgresql/data"
restart: always
et changez POSTGRES_PASSWORD par un vrai mot de passe
et modifiez folder_name par votre
On a ici :
database : c'est le nom du serviceimage: postgres:11.6-alpine : on dit quelle image utiliserenvironment : on précise les variables d'environnement que le service dispose. (On peut aussi utiliser env_file: ".env" et mettre les variables dans le .env)volumes : on précise le lien entre un dossier sur le nœud swarm vers le dossier à l'intérieur du CT.restart : Permet de dire de redémarrer automatiquement si elle crash ou si le nœud vient de démarrer.Ajouter un autre service :
services:
...
codimd:
image: nabo.codimd.dev/hackmdio/hackmd:2.6.0
environment:
- CMD_DB_URL=postgres://codimd:change_password@database/codimd
- CMD_USECDN=false
- CMD_ALLOW_ANONYMOUS_EDITS=true
- CMD_ALLOW_ANONYMOUS=true
depends_on:
- database
ports:
- "8077:3000"
volumes:
- ${VOLUMES}/folder_name/upload-data:/home/hackmd/app/public/uploads
restart: always
volumes:
database-data: {}
upload-data: {}
et modifiez :
change_password par le même que dans le service database.8077 en un autre numéro, c'est le port sur lequel il faudra se connecter par la suite.On a ici :
depends_on : permet de dire qu'il faut démarrer codimd après le démarrage de database.ports : on précise le lien entre un port sur le noeud swarm vers le port à l'intérieur du CT.Optionnel (Si vous n'avez pas docker sur votre pc, poursuivez)
Vous pouvez ouvrir un terminale et faire la comande suivante pour lancer le docker composedocker compose -f compose.yaml up -dVous pouvez l'ouvrir sur http://localhost:8077
Pensez à vérifier que le port est le même dans l'url et dans la ligneports:du fichier
Si vous avez lancé en local et qu'il marche, pensez à le couper avant de passer à la suite !
docker compose -f compose.yaml up -dSinon il consomme CPU et RAM indefiniment (même après reboot, il démarre automatiquement du au
restart: always)
On doit maintenant transformer le fichier compose en un stack. Voici les modifications qu'il faut faire :
Copiez toujours dans le même dossier le fichier sous le nom stack.yaml
Supprimez ce qui suit des 2 services car docker swarm n'est pas compatible avec restart.
restart: always
Rajoutez aux 2 services :
deploy:
replicas: 1
restart_policy:
condition: on-failure
Rajoutez aux 2 services :
networks:
- network_codimd
Dans Docker Swarm, on est obligé de préciser les networks, sinon ça ne marche pas.
et rajoutez finalement à la fin du fichier :
networks:
network_codimd:
driver: overlay
Connectez vous sur un noeud d'un cluster docker swarm.
Par exemple une des trois suivant :
ssh dora@157.159.195.2ssh turbo@157.159.195.3ssh saumon@157.159.195.4avec le mot de passe : swarmswarm
${STACKS}/folder_name/ creer le dossier dans ${STACKS} avec le même nom que dans le stack.yamldocker stack deploy -c stack.yaml {folder_name}docker stack ps codimd pour voir si ça fonctionne. (Vous devez avoir )8077 par le numéro de port que vous avez choisis.http://157.159.195.2:8077
http://157.159.195.3:8077
http://157.159.195.4:8077
Voici une liste de ce que l'on pourrait ajouter sur la stack.
Dans la documentation de codimd, il est indiqué qu'on peut lier des services comme :