Skip to content

abes-esr/sudoc-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sudoc-docker

Docker Pulls

Ce dépôt contient la configuration docker 🐳 pour déployer l'application convergence (cf sources du web service) en local sur le poste d'un développeur, ou bien sur les serveurs de dev, test et prod.

URLs des Web Services Kbart et Sudoc, swagger

Les URLs correspondantes aux déploiements en dev, test et prod des webservices Sudoc sont les suivantes :

Prérequis

Disposer de :

  • docker
  • docker-compose

Installation

Déployer la configuration docker dans un répertoire :

# adaptez /opt/pod/ avec l'emplacement où vous souhaitez déployer l'application et cloner le projet

git clone https://github.com/abes-esr/convergence-docker.git

Configurer l'application depuis l'exemple du fichier .env-dist (ce fichier contient la liste des variables avec des explications et des exemples de valeurs) :

cp .env-dist .env
# personnaliser alors le contenu du .env avec nano, vim, vi, etc. 

Démarrer l'application :

docker-compose up -d

Remarque : retirer le -d pour voir passer les logs dans le terminal et utiliser alors CTRL+C pour stopper l'application

# pour stopper l'application
docker-compose stop

# pour redémarrer l'application
docker-compose restart

Supervision

# pour visualiser les logs de l'appli
docker-compose logs -f --tail=100

# pour visualiser les logs d'un containeur
docker-compose logs -f --tail=100 nom_du_containeur

Cela va afficher les 100 dernière lignes de logs générées par l'application et toutes les suivantes jusqu'au CTRL+C qui stoppera l'affichage temps réel des logs.

Déploiement continu

Les objectifs des déploiements continus de item sont les suivants (cf poldev) :

  • git push sur la branche develop provoque un déploiement automatique sur le serveur de l'environnement de développement
  • git push (le plus couramment merge) sur la branche main provoque un déploiement automatique sur le serveur de l'environnement de test
  • git tag X.X.X (associé à une release) sur la branche main permet un déploiement (non automatique) sur le serveur de l'environnement de production

Item est déployé automatiquement en utilisant l'outil watchtower. Pour permettre ce déploiement automatique avec watchtower, il suffit de positionner à false la variable suivante dans le .env:

CONVERGENCE_WATCHTOWER_RUN_ONCE=false

Le fonctionnement de watchtower est de surveiller régulièrement l'éventuelle présence d'une nouvelle image docker de ..., si oui, de récupérer l'image en question, de stopper le ou les vieux conteneurs et de créer le ou les conteneurs correspondants en réutilisant les mêmes paramètres ceux des vieux conteneurs. Pour le développeur, il lui suffit de faire un git commit+push par exemple sur la branche develop d'attendre que la github action build et publie l'image, puis que watchtower prenne la main pour que la modification soit disponible sur l'environnement cible, par exemple la machine de l'environnement de developpement.

Le fait de passer CONVERGENCE_WATCHTOWER_RUN_ONCE à false va faire en sorte d'exécuter périodiquement watchtower. Par défaut cette variable est à true car ce n'est pas utile voir cela peut générer du bruit dans le cas d'un déploiement sur un PC en local.

Sauvegardes

Les éléments suivants sont à sauvegarder:

  • .env : contient la configuration spécifique de notre déploiement

Restauration depuis une sauvegarde

Réinstallez l'application convergence depuis la procédure d'installation ci-dessus

Lancez alors toute l'application item et vérifiez qu'elle fonctionne bien :

docker-compose up -d

Mise à jour de la dernière version

Pour récupérer et démarrer la dernière version de l'application vous pouvez le faire manuellement comme ceci :

docker-compose pull
docker-compose up -d

Le pull aura pour effet de télécharger l'éventuelle dernière images docker disponible pour la version glissante en cours (ex: ...). Sans le pull c'est la dernière image téléchargée qui sera utilisée.

Ou bien lancer le conteneur convergence-watchtower qui le fera automatiquement toutes les quelques secondes pour vous.

About

Configuration docker 🐳 pour déployer convergence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •