Hello @Amelie, c'est bien de se lancer, Docker c'est pratique 🙂 mais pas vraiment naturel, je le reconnais.
Comme l'a dit @Lelolo, tu as effectivement deux façons de procéder, en créant le conteneur directement ou bien en passant par un projet. Ce dernier permet de conserver les paramètres de configuration de ton conteneur, c'est donc préférable. C'est un point que je n'aborde pas dans le tutoriel introductif car l'ancienne mouture du paquet Docker ne permettait pas de le faire.
Si tu décortiques le fichier compose, tu peux voir que les différentes sections du fichier reprennent en fait ce que tu as configuré en parcourant les sous-menus avec la méthode de création de conteneur en direct. Ce qu'il manquait dans ta première tentative c'était le mappage des ports, ici :
L'idée c'est de faire comme tu fais avec ton routeur et ton NAS. Ton NAS n'est pas accessible directement depuis Internet, tu dois faire de la redirection de ports (encore appelée NAT) d'un port du routeur vers ton NAS pour accéder à un service donné. Ici c'est exactement la même chose, le NAS tient le rôle du routeur dans l'exemple précédent, et le conteneur le rôle du NAS.
Donc dans l'impression ci-dessus, tu aurais dû préciser à la place de "Port local" le port du NAS qui va correspondre à celui du conteneur. Ici ton conteneur expose des services/API sur 4 ports distincts. Généralement, on utilise les mêmes ports sur l'hôte (le NAS), sauf si ceux-ci sont déjà utilisés. Et normalement, les logs te diront si c'est le cas lorsque tu essaieras de déployer ton conteneur.
Maintenant revenons au fichier compose, je te propose quelques changements :
Changer la version de 3 à 2.1
Volumes : les volumes permettent de préciser où l'application va lire et écrire les données, monter un volume crée un lien entre les dossiers du NAS et ceux du conteneur :
Pour la configuration, tu peux créer un dossier "lms" et un sous-dossier "config" dans le dossier partagé docker ce qui donnera -> /volume1/docker/lms/config:/config:rw
En faisant, tu dis que le dossier /volume1/docker/lms correspond au dossier /config dans le conteneur et qu'on peut lire et écrire dans ce dossier (rw)
Pour la musique, et bien si tu le dossier partagé music par défaut de DSM, tu dois monter ce dossier en lecture seule (ro) -> /volume1/music:/music:ro
Pour les playlists, à toi de voir où tu veux créer le dossier, ça pourrait être /volume1/docker/lms/playlists ou /volume1/music/playlists, ou tout autre dossier de ton choix
IMPORTANT A COMPRENDRE : Si tu oublies de monter un volume, les données s'écrivent quand même, mais elles sont simplement très difficiles d'accès, pour simplifier disons qu'elles ne sont visibles que dans le conteneur.
/etc/timezone doit devenir /etc/TZ sur les NAS Synology -> /etc/TZ:/etc/timezone
Environment : ce sont les variables d'environnement qui personnalisent ton application, ici je te conseille d'ajouter les variables suivantes :
PUID=XXXX
Il s'agit de l'ID de l'utilisateur qui va exécuter l'application, et donc pour faciliter la gestion des permissions liées au dossier, je te conseille :
de définir l'utilisateur en question comme propriétaire du dossier lms que tu as créé dans le dossier partagé docker -> clic droit / propriétés / propriétaire
de t'assurer que l'utilisateur en question est capable de lire la musique du dossier partagé music
Pour connaître cette ID, tu dois te connecter au terminal et taper id <nom_utilisateur> (sans les symbôles > et <)
PGID=100 : C'est le groupe auquel appartient tous les users, c'est le choix le plus immédiat.
Ca devrait donner quelque chose comme ça au final :
version: '2.1'
services:
lms:
container_name: lms
image: lmscommunity/logitechmediaserver
volumes:
- /volume1/docker/lms/config:/config:rw
- /volume1/music:/music:ro
- /volume1/docker/lms/playlists:/playlist:rw
- /etc/localtime:/etc/localtime:ro
- /etc/TZ:/etc/timezone:ro
ports:
- 9000:9000/tcp
- 9090:9090/tcp
- 3483:3483/tcp
- 3483:3483/udp
environment:
- HTTP_PORT=9000
- PUID=XXXX
- PGID=100
restart: unless-stopped