Proxmox lxc docker agent dvr + nfs

Bonjour à tous,

Je suis en train de mettre en place AGENT DVR. J’arrive sans problème à l’installer via Docker à l’intérieur d’un container LXC sous Proxmox VE. Ca fonctionne parfaitement, ainsi que l’intégration des mes caméras EZVIZ.

Par contre j’aimerais que les enregistrements de mes caméras soient stockées sur mon serveur NAS.

Bon jusque la pas difficile, je me dit qu’il me suffit de monter un partage NFS. Ca c’est ok aussi le partage fonctionne sans problème.

Lors de l’installation d’AGENT DVR, j’utilise les instructions sur le site.

docker run -it -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp -v /appdata/ispyagentdvr/config/:/agent/Media/XML/ -v /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/ -v /appdata/ispyagentdvr/commands:/agent/Commands/ --name ispyagentdvr doitandbedone/ispyagentdvr

On peut voir que :

/appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/

Donc normalement les vidéos qui s’enregistrent dans AGENT DVR c’est dans le dossier /agent/Media/WebServerRoot/Media/, et dans mon docker je dois les retrouver ici /appdata/ispyagentdvr/media/ ?

Par ce que /appdata/ispyagentdvr/media/ est vide, même avec des enregistrements côté AGENT DVR.

Par contre mon NFS entre mon nas et /appdata/ispyagentdvr/media/ fonctionne, mais ne sert à rien si c’est vide :rofl:

Quelqu’un utilise AGENT DVR et fait des enregistrements sur son NAS ? Je me demande si je ne vais pas finir par passer par une VM du coup …

proxmox, lxc, docker et NFS c’est un combo pas simple :slight_smile:
Est-ce que quand tu te connectes en mode console au container lxc, tu peux écrire dans le montage NFS ?
Ensuite, depuis le container docker idem, aller en mode console se déplacer dans le répertoire /agent/Media/WebServerRoot/Media/ et essayer d’écrire un fichier en utilisant uid/gid du user avec lequel s’exécute le container docker.

Les droits NFS, ce n’est pas le plus simple… Ajouter à ça, lxc, puis docker ça empile les sources de problèmes.
A froid, je dirais que c’est un problème de droits d’écriture du user d’exécution de agent dvr.
Trois méthodes, pour moi:

  • comprendre ou ça coince :wink:
  • mettre 0777 comme droits partout (la méthode bazooka)
  • passer à CIFS/SMB. Paradoxalement, mettre un truc d’origine Windows, c’est plus simple. V comprendre.

La quatrième c’est effectivement passer en VM.

Merci @golfvert pour ta réponse.

Oui si je suis dans la console lxc, je peux créer un fichier dans /appdata/ispyagentdvr/media/ et je le retrouve bien côté NAS.

Pour la suite aller écrire /agent/Media/WebServerRoot/Media/ ca je ne sais pas le faire, mais en regardant dans AGENT DVR ou s’enregistre les vidéos, et en effectuant un enregistrement, je suis parti du principe que ce fichier n’était pas vide …

Mais même sans parler du NFS en y repensant, j’ai bien l’impression d’avoir une problème d’écriture entre /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/

Ou je peux directement créer un partage NFS avec /agent/Media/WebServerRoot/Media/ ?
Par ce que la en fait je me retrouve avec :

ip_serveur_nfs:/nom_partage_nfs /appdata/ispyagentdvr/media/

et :

/appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/  

Ca fait faire deux fois le boulot …

Il n’y a, je le crains, pas d’autres solution… Faire connaitre le partage NFS à ton container LXC puis faire le mapping entre le nom sur le serveur (le container lxc) et le nom docker interne…

Pour aller voir dans le container, suivre par exemple ceci: https://devconnected.com/docker-exec-command-with-examples/

En gros, faire un docker exec -it id_container /bin/sh et ensuite aller dans /agent/Media/WebServerRoot/Media/ pour voir si ça correspond à ton volume sur le NAS et si tu peux écrire dedans.

Bon pour faire les tests j’ai fait un nouveau container LXC, et une installation toute neuve de docker et d’agent dvr. Et ca marche …

La seule différence c’est que j’ai réalisé le montage nfs entre le NAS et le container avec root, alors que depuis le début de mes essais je le fais avec un user du groupe sudo, sinon j’ai refait l’ensemble des manipulations à l’identique.

C’est (presque) l’équivalent de la méthode bazooka décrite plus haut.
Sur une installation perso, ce n’est pas trop grave. Mais, ce n’est quand même pas trop propre :wink:
La gestion des droits avec NFS est assez galère. Ca dépend des uid linux qui sont gérés de diverses manières sur les NAS. Donc, là, au canon du 12, c’est passé.

Après tu pense que ce serait mieux de passer sur un partage CIFS/SMB ? Ou de passer en VM ? Si vraiment je voulais être clean. C’est pour une installation perso, donc ca n’a pas trop d’impact que je reste comme ca, c’est plus pour moi savoir :wink:

Ça paraît raisonnable d’en rester là. Ça marche. C’est le principal.

1 « J'aime »