Aller au contenu

[Résolu]Configuration mapping des dossiers du docker


wd_newbie

Messages recommandés

Comme demandé dans le post en en-tête : 

  • Niveau : utilisateur confirmé en informatique générale, mais néophyte sur Synology
  • Image : https://hub.docker.com/r/windev/hfsql
  • Interface :  Interface Docker de Synology : Container Manager

---

Bonjour,

Un peu nouveau sur Synology, je m'essaie a configurer mon nouveau 723+.

Je dois mettre en place un serveur de base de donnée HFSQL, pour cela j'ai téléchargé l'image et créer un conteneur.

La base fonctionne, je n'ai pas de soucis fonctionnel.

Par contre ... je n'arrive pas a mapper le répertoire des données (qui est /var/lib/hfsql/ selon les infos sur le serveur) a un fichier accessible par FileStation.

J'ai tenté de modifier directement le chemin des données en "/volume1/Datas/12 - HFSQL -bases"  depuis l'interface de la base de données, mais j'ai une erreur "Access Denied"

J'ai un peu de peine a voir comment empoigner le truc, les infos trouvées ne correspondent pas à ma version de Container Manager, mais Docker, , tout ce que j'arrive a faire quand je fais des tests de mapping, c'est :

Le conteneur windev-hfsql-1 s'est arrêté de manière inattendue. Accédez à Container Manager pour plus d'informations

et il n'y a pas d'infos dans le journal ...

C'est bien à l'endroit en rouge (image ci-dessous) que cela se défini ou je suis complètement à côté.

Une idée ? je tourne vraiment en rond ... et je n'ose pas trop mettre en place des données sans avoir tous les paramètres OK ...

Merci d'avance

 

syno_mapping.png

Modifié par wd_newbie
ajout de l'entete
Lien vers le commentaire
Partager sur d’autres sites

Merci pour le retour, mais oui, j'ai bien arrêté / redémarré le container pour faire mes tests ... c'est vraiment que je ne compèrends pas trop ce que je doit mettre dedans...

 

On me demande un dossier (+ ajouter un dossier) et un fichier (+ ajouter un fichier) je ne vois pas trop comment mapper un dossier sur fichier ou vice-versa.

Si je prend le  chemin des datas dans les paramètres du serveur, ils seraient en /var/lib/hfsql/, et j'aimerais pouvoir y accéder par le FileStation (et samba)

 

Lien vers le commentaire
Partager sur d’autres sites

Sinon pour tes questions :

L'image conseille de créer un volume docker, càd un volume qui va se créer automatiquement dans les fichiers système de DSM.
C'est la meilleure chose à faire quand les permissions UNIX sont exotiques et ne sont pas adaptées à un montage dans un dossier partagé où interviennent les ACL de DSM.
C'est moins pratique quand on souhaite sauvegarder les données, car elles se trouvent justement hors de Filestation.

Ce que j'ai créé comme projet dans Container Manager :

version: "2.1"
services:

    windev-hfsql:
        image: windev/hfsql:FR280085e
        container_name: hfsql
        network_mode: bridge
        environment:
            - HFSQL_PASSWORD=mybestpassword
        ports:
            - 4923:4900
        volumes:
            - /volume1/docker/windev_test:/var/lib/hfsql
        restart: unless-stopped

Si je ne fais rien de plus, mon conteneur s'arrête également, très probablement car il ne sait pas écrire dans le dossier avec son user "hfsql" (voir Dockerfile : https://hub.docker.com/layers/windev/hfsql/FR280085e/images/sha256-8f885c8bc17a9cb1cf3388fd9b6e4663b9fa70ea02200716fa275f11e7036de0?context=explore)

Donc deux possibilités :

- Tu chmod 777 le dossier, c'est ce que j'ai fait et ça fonctionne.
- Tu crées un volume docker, et tu devras trouver un moyen de sauvegarder les données (rsync, script en bash ou pyhton, etc...)

Avec un volume Docker en revanche ça ressemblera à : 

version: "2.1"
services:

    windev-hfsql:
        image: windev/hfsql:FR280085e
        container_name: hfsql
        network_mode: bridge
        environment:
            - HFSQL_PASSWORD=mybestpassword
        ports:
            - 4923:4900
        volumes:
            - hfsql:/var/lib/hfsql
        restart: unless-stopped

volumes:

    hfsql:

Dans les deux cas, si les données sont importantes, je ne suis pas certain qu'il soit judicieux d'utiliser Docker pour cette image pour une utilisation en production professionnelle. Notamment du fait que l'image ne semble pas spécialement bien travaillée.

Et du Windev on en bouffe à foison au boulot, c'est une vraie plaie, nos informaticiens sont pas foutus de travailler avec une base de données mysql. Ce sont des bricoleurs.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour tes retours ... qui sont un peu chinois pour moi , désolé (vraiment newbie en Synology).

Quand je lance mon Docker dans Container Manager, je :

- crée un nouveau Docker
- sélectionne mon image (récupérée dans "Registre" auparavant)
- j'active le redémarrage automatique
- lie le port 4900 → 4900
- C'est ici dans "Paramètre de Volume" que ça tousse ...

Envoie , on crée le container ... ça devrait être simple ... en tout cas dans la doc 🙂

Je ne vois pas trop par ou passer pour chmoder le répertoire et/ou envoyer des commandes ... en Putty a distance ?

Désolé si mes questions semblent un peu en dehors des clous  !


 

 

 

 

hfsql1.png

hfsql2.png

hfsql3.png

Lien vers le commentaire
Partager sur d’autres sites

Oui pour chmoder c'est via terminal, ou créer une tâche planifiée qui va le faire.
Mais c'est plus simple via le terminal directement.

L'autre solution, de créer un "volume Docker", peut se faire par la création d'un projet dans Container Manager, et en rédigeant le fichier compose.yaml tel que je l'ai fait. Si tes données sont importantes je privilégierais plutôt la création d'une VM et d'une installation native.

Lien vers le commentaire
Partager sur d’autres sites

Quand tu dis

Si tes données sont importantes je privilégierais plutôt la création d'une VM et d'une installation native.

Je m'étais tourné vers Docker en pensant qu'au niveau des ressources du NAS ce serait plus léger plutôt qu'une VM complète ...mais encore une fois je débute 🙂

Lien vers le commentaire
Partager sur d’autres sites

C'est tout à fait vrai, c'est plus léger car les ressources ne sont pas allouées comme sur une VM.
Ca a l'inconvénient éventuel de pouvoir bouffer toute la RAM de l'hôte en cas de problème, une VM sera limitée par ce qu'on lui a donné, l'hôte peut donc être protégé.

Ce que je dis c'est que les fichiers sont visiblement écrits soit par root soit un utilisateur incompatible avec les ACL de Synology.
En chmodant on supprime les ACL du dossier où se trouvera la base de données, on peut donc autoriser n'importe quel utilisateur exotique à écrire dans le dossier chmodé.

Mais tu ne réponds pas depuis le début sur la criticité des données.
Si c'est pour une utilisation pro, je déconseillerais l'utilisation de cette image Docker. La documentation laisse à désirer, et l'image n'est pas bien construite pour être utilisée sur un NAS Synology. Si tu veux voir des exemples d'image adaptées pour une utilisation conjointe avec DSM, tu peux aller voir du côté de Home | LinuxServer.io (mais qui ne propose pas d'image Windev, c'est juste pour l'exemple).

En conséquence, mon conseil est qu'une VM ou une installation bare-metal sera plus indiquée suivant la criticité, si c'est juste pour la curiosité, je t'invite à suivre la méthode en chmodant le dossier de la base de données.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Bon, pour la criticité des données,c'est critique sans l'être vraiment ... je m'explique :  j’utilise HFSQL pour le gestionnaire de source de Windev (mais  j'utilise plutôt du SQLServer ou MySQL pour les projets 😉).

Comme je travaille seul, le gestionnaire me permet de travailler en déplacement ou au bureau avec des machines différentes en ayant les sources toujours à jour, donc si je perds les données j'ai toujours au moins une copie à jour sur une des trois machines que j'utilise (en plus des backups habituels).

Bon pour ce qui est de la partie "pratique", j'ai

- installé putty
- activé la connexion SSH

Tentative de connexion sur le syno avec mon user habituel   :

- cd /var/lib
- ls
- ... pas de répertoire /hfsql ... donc pas de chmod ...

J'active l'user "admin" , connexion avec celui-ci en SSH :
- cd /var/lib
- ls
- ... pas de répertoire /hfsql ... donc pas de chmod ...

Je passe a côté d'un truc, mais quoi ...

 

 

 

sano_3.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

J'ai eu du mal à résoudre ce problème moi même mais avec une bonne volonté on y arrive ;p.

* Dans paramètre du volume tu cré ou selectionne un dossier qui est déjà créé sur ton synology et tu le lie/pointe avec " /var/lib/hfsql "

* Dans paramètre du volume tu crée ou selectionne un dossier qui est déjà créé sur ton synology et tu le le lie avec " /opt/hfsql/backup "

* paramètre des ports tu choisis un port pour le rediriger vers le port du conteneur(4900) pour être sur choisis entre 49000 à 63000.

* Dans environnement tu laisses tel quel (je n'ai pas encore compris l'histoire du HFSQL_PASSWORD)

Petit oubli, pour l'autorisation des dossiers que tu vas créer il faut dans DSFILE sur le dossier en question click droit -> propriété->onglet permissions->créer-> dans utilisateur ou groupe tu selectionne "EVERYONE" et tu autorise et tu coches LIRE ET ECRIRE.

 

Bonne soirée !

Lien vers le commentaire
Partager sur d’autres sites

Le 20/08/2023 à 19:19, wd_newbie a dit :

Tentative de connexion sur le syno avec mon user habituel   :

- cd /var/lib
- ls
- ... pas de répertoire /hfsql ... donc pas de chmod ...

J'active l'user "admin" , connexion avec celui-ci en SSH :
- cd /var/lib
- ls
- ... pas de répertoire /hfsql ... donc pas de chmod ...

Je passe a côté d'un truc, mais quoi ...

Tu es simplement passé à côté du principe des volumes dans Docker.
Tu ne trouveras jamais ton dossier hfsql dans le /var/lib du NAS, ces données sont dans le conteneur.
Et quand tu montes un volume, tu dis où les données contenues dans /var/lib/hfsql doivent se trouver sur le NAS.

Donc je reprends ce que je te disais au début :

a-e-l@GARRUS:/volume1/docker$ ll
total 0
drwxrwxrwx+ 1 root     root    212 Aug 17 07:23  .
drwxr-xr-x  1 root     root   1068 Aug 22 15:58  ..
drwxrwxrwx+ 1 root     root     24 Aug 20 08:08  @eaDir
drwxrwxrwx+ 1 a-e-l    users    22 Apr 29 15:52  interfaces
drwxrwxrwx+ 1 a-e-l    users    40 Dec  6  2020  iperf3
drwxrwxrwx+ 1 a-e-l    users   120 Jun  5 18:31  iris
drwxrwxrwx+ 1 a-e-l    users    36 Apr 12 16:10  mediawiki
drwxrwxrwx+ 1 a-e-l    users    34 May  5 21:37  networks
drwxrwxrwx+ 1 pihole   pihole   46 Jan 20  2023  pi-hole
drwxrwxrwx+ 1 a-e-l    users    94 Jun 19  2022  portainer-agent
drwxrwxrwx+ 1 root     root     22 Jun 11 07:52 '#recycle'
drwxrwxrwx+ 1 telegraf users   120 Aug  8 22:16  telegraf
drwxrwxrwx+ 1 root     root      0 Sep 12  2019  @tmp
drwxrwxrwx+ 1 a-e-l    users   108 Nov  1  2020  watchtower
drwxrwxrwx  1 a-e-l    users    82 Aug 17 07:31  windev_test

on voit que pour le dossier windev_test, il n'y a pas de "+" à côté des permissions UNIX, c'est une conséquence du chmod 777 que j'ai effectué. Je vais aller dans ce dossier, voir si mon conteneur a pu écrire ces données, mais c'est forcément le cas car les permissions sont pleines :

a-e-l@GARRUS:/volume1/docker$ ll windev_test/
total 4
drwxrwxrwx  1 a-e-l users   82 Aug 17 07:31 .
drwxrwxrwx+ 1 root  root   212 Aug 17 07:23 ..
-rwxrwxrwx+ 1 root  root   363 Aug 17 07:28 compose.yaml
drwxr-xr-x  1  4900  4900  172 Aug 17 07:31 __jnl
drwxr-xr-x  1  4900  4900    0 Aug 17 07:31 __jnlbackup
drwxr-xr-x  1  4900  4900 1004 Aug 17 07:31 __system
drwxr-xr-x  1  4900  4900  220 Aug 17 07:31 __trs

Oui il a pu écrire, on remarque quoi ? ce que je disais, qu'il y a un utilisateur avec une ID exotique (4900) utilisé par Windev, d'où la nécessité de chmodder.
Mais ainsi je n'ai aucun problème de lecture écriture. Et l'application fonctionnera sans encombre.

Lien vers le commentaire
Partager sur d’autres sites

Un grand merci a tous,

je vais avoir quelques jours de vacances pour digérer tout ça ... je vais attendre le retour car j'ai passé le GDS sur le Syno pour pouvoir bosser en vacances (🫤)
Même si pour l'instant je ne sais pas trop ou sont mes données ... ça marche et je  ne vais pas prendre le risque de tout casser en étant à 500 km de la bête 😀

Je mettrai la suite de mes aventures ici ... 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Hello, de retour de vacances, je me suis penché à nouveau sur mon soucis de serveur HFSQL :

- sauvegardé toutes les bases actuelles
- supprimé le docker installé + fichiers liés

Ensuite :

- créé deux répertoires dans le dossier "Docker", ça me semblait le plus  logique, vu que la désinstallation du docker ne me supprimait les dossiers que j'avais pour tests (?)
   HFSQL\datas
   HFSQL\backup
- passé les droits de Everyone en RW sur le HFSQ avec répercussion sur les sous-dossier
- remis en place le docker en lui mettant les infos données par Mohammed
- redémarré le serveur

et c'est magique, j'ai mes dossiers et mes fichiers accessibles dans datas et backup !

Donc pour moi, à moins d'avoir fait une c**** de mettre mes datas dans le \docker\ (??) , c'est résolu !

Merci à tous pour votre aide !

Modifié par wd_newbie
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.