# Bibliotheque en lecture seule pour des tiers — un nginx DEDIE, qui ne fait # que servir des fichiers signes. # # docker compose --env-file /etc/li/li.env up -d # # POURQUOI UN SECOND NGINX. Le proxy de facade est le processus le plus expose # de la machine ; lui monter toute la bibliotheque elargirait son rayon # d explosion pour rien. Ici, le conteneur qui tient les fichiers ne publie # aucun port et ne joint personne : il vit sur un reseau « internal » ou la # facade est son seul voisin. services: li: image: nginx:1.29-alpine container_name: li restart: unless-stopped volumes: - ./nginx/li.conf:/etc/nginx/conf.d/default.conf:ro # La table des ayants droit contient leurs secrets : elle vit hors du # depot, dans LI_DATA. # # C est le REPERTOIRE qui est monte, et non le fichier. Un bind-mount de # fichier epingle l INODE : li-user publie sa map par un « mv » atomique, # qui remplace l inode, et le conteneur resterait indefiniment sur # l ancienne version — un ayant droit ajoute n existerait jamais pour # nginx, sans la moindre erreur. - ${LI_DATA:?}/conf:/etc/nginx/li:ro - ${LI_DATA:?}/playlists:/srv/li/playlists:ro # La bibliotheque, en LECTURE SEULE. Le conteneur ne peut rien ecrire # dans la bibliotheque, meme si nginx tombait. - ${LI_LIBRARY:?}:/srv/li/library:ro networks: [li] security_opt: [no-new-privileges:true] networks: # La facade rejoint ce reseau (« external: true » de son cote). Aucune # sortie : « internal » interdit au conteneur de joindre quoi que ce soit. li: name: li internal: true