Aller au contenu

Organiser un TFJM²#

Ce site a pour objectif de regrouper toutes les informations nécessaires concernant l'organisation du TFJM², à l'échelle locale ou nationale. Il est accessible à l'adresse organiser-un.tfjm.org.

Ce site est écrit en Markdown, comme cette présente documentation, dont les sources sont disponibles sur un dépôt Gitlab, et compilées en un site Web statique à l'aide de MKDocs Material.

Une image Docker a été conçue à la main permettant de mettre à jour automatiquement un site compilé de la sorte à partir d'un dépôt Git, dès lors qu'une action de push est réalisée. Les sources de cette image sont accessibles ici : gitlab.com/animath/si/mkdocs-server-from-git, et l'image Docker peut être trouvée sur DockerHub sous le nom ynerant/mkdocs-server-from-git.

Installation#

L'installation se fait en deux temps. On considère ici une installation générale sur le site site.example.com du dépôt https://git.example.com/user/repo.git, qui s'adapte très facilement à la configuration du site d'organisation.

Tout d'abord, il faut préparer le service. Dans le fichier docker-compose.yml :

  site:
    image: ynerant/mkdocs-server-from-git
    restart: always
    environment:
      - MKDOCS_SERVER_GIT_URL=https://git.example.com/user/repo.git
    labels:
      - "traefik.http.routers.site.rule=Host(`site.example.com`)"
      - "traefik.http.routers.site.entrypoints=websecure"
      - "traefik.http.routers.site.tls.certresolver=mytlschallenge"

Il n'y a pas d'autre variable d'environnement à définir, le service est déjà prêt à être lancé. En se rendant sur https://site.example.com, il est normalement déjà possible d'admirer le site compilé.

Dans un second temps, il faut configurer la mise à jour à chaque action push. Pour cela, il suffit de configurer un nouveau webhook sortant dans le dépôt contenant les sources Markdown, pointant sur l'adresse https://site.example.com/trigger-ci.json. Et c'est tout ! Essayez un nouveau push, réactualisez la page et admirez.

Il est à noter que le dépôt des sources du site doit impérativement contenir un fichier requirements.txt, qui contient l'ensemble des paquets PIP nécessaires à installer. Par défaut, seuls mkdocs et mkdocs-material sont installés. Attention : si vous ajoutez de nouveaux paquets, vous devrez redémarrer le service (via un simple docker-compose restart site) pour que l'installation des paquets PIP prenne effet.

Il n'y a a priori pas de mise à jour de l'image à faire, mais s'il y en a, un simple docker-compose pull site suffira.


Dernière mise à jour: 11 juillet 2020