Aller au contenu

docker compose pour l'application gadael


en3rgizz

Messages recommandés

Posté(e)

Bonjours à tous  

j'essaye de mettre en place une application de conges via docker sur mon Synology 

application : https://www.gadael.com/fr/

je précise que je le fais via docker compose.

j'ai fais mes test en local sur un pc windows 10 avec docker en docker compose et cela fonctionne parfaitement.

jutilise pour mes test le docker file fournis par les dev (cela fonctione sur windows ) 

https://hub.docker.com/r/webinage/gadael

 

par contre sur le syno j'ai cette erreur 

bien cordialement,

Capturesyno.thumb.PNG.16fcaebe52869cc04524f6b82e423dda.PNG

Posté(e)

Il faut éviter de stocker des données hors de /volume1 lorsqu'on fait des montages de type bind (contrairement aux volumes docker).
Dans le dossier partagé docker dans Filestation, tu crées un dossier gadael et un sous-dossier db.
Puis tu modifies ton fichier docker-compose en remplaçant :

/data/db:/data/db

par :

/volume1/gadael/db:/data/db

Et place ton fichier docker-compose dans le dossier gadael tant qu'à faire.

Posté(e)

Merci pour ta rapidité je test cella 

et reviens vers toi. 

cordialement

Posté(e)

hello Shad

comme convenue je reviens vers toi.

ta méthode  a bien fonctionnée l'installation ce passe sans problème mais (par ce qui'l y'a un mais )  mes conteneur docker n'arete pas de s'arrêté de manière inattendu du coup fais que des redémarrage.

j'ai ajouter les journaux au format html. mais je ne comprend pas  ce forcing

db_gadael_1.html db_mongo_1.html

Posté(e)

Gadael n'arrive pas à se connecter à ta db MongoDB car celle-ci rencontre un problème de permission.
Elle n'arrive pas à créer ses fichiers dans /volume1/docker/gadael/db.

Est-ce que tu peux vérifier ? je pense que ce dossier doit être vide chez toi.
Sous réserve que tout le reste est bien configuré, plusieurs solutions :

- La meilleure : si tu n'as pas besoin d'accéder par explorateur aux fichiers présents dans /volume1/docker/gadael/db, tu peux utiliser un volume Docker à la place d'un volume présent dans /volume1. Ca a l'avantage de se débarrasser des problèmes liées aux permissions. Pour ça, au lieu d'avoir quelque chose comme :

version: "3.3"
services:

   gadael:
      image:
      ....
      ....
      volumes:
         - /volume1/docker/gadael/db:/data/db
      ...

tu auras plutôt :

version: "3.3"
services:

   gadael:
      image:
      ....
      ....
      volumes:
         - data-db:/data/db
      ...

volumes:

   data-db:

Ca va avoir pour effet de créer dans le chemin /var/packages/Docker/target/docker/volumes un dossier nommé gadael_data-db (attention, il faut être connecté en root pour accéder à ce dossier).
Ce dossier contiendra les fichiers que tu aurais normalement eus dans /volume1/docker/gadael/db. C'est donc accessible, mais pas directement par l'interface de DSM.

Si depuis l'interface de MongoDB tu peux accéder à tout ce dont tu as besoin, alors c'est tout bénef.

- L'autre solution, c'est de chmod le dossier db dans /volume1/docker/gadael pour autoriser l'écriture depuis un utilisateur dont l'UID/GID diffère de ce qui est géré par DSM.
Il te suffit de faire via SSH :

cd /volume1/docker/gadael
chmod o+w db

Pense à ajouter sudo devant le chmod si tu n'es pas connecté en root.

C'est moins propre que la première solution, mais plus simple.

Posté(e)

merci pour tes réponse si détaillé.

alors si je te comprend bien 

le code devrais ressembler à cela 

version: "3.3"
services:
  mongo:
    image: mongo:latest
    ports:
    - 27017:27017
    restart: always
    volumes:
      - data-db:/data/db
     volumes:
      data-db:
    networks:
      - "bridged"
  gadael:
    image: webinage/gadael:0.0.9
    ports:
      - "3000:3000"
    environment:
      - LOGHTTP=true
      - CSRFPROTECTION=true
      - POSTPHONE=true
      - CALLBACK_URL=your.host.net
      - APP_HOST=
      - APP_PORT=3000
      - APP_COMPANY=
      - APP_LANGUAGE=fr
      - APP_CRYPTO_KEY=k8yb0brda2t
      - APP_TIMEOUT=
      - DB_INIT=true
      - DB_HOST=mongo/
      - DB_NAME=gadael
      - DB_AUTO_INDEX=true
      - LOGIN_ATTEMPT_IP=50
      - LOGIN_ATTEMPT_USER=7
      - LOGIN_ATTEMPT_LOG_EXPIRATION=20m
      - ACCOUNT_VERIFICATION=false
      - MAIL_HOST=localhost
      - MAIL_PORT=dock
      - MAIL_SECURE=
      - MAIL_USER=
      - MAIL_PASS=
      - MAIL_HEADER="Gadael email"
      - MAIL_ADDRESS=gadael@example.com
    restart: always
    depends_on: 
      - mongo
    networks:
      - "bridged"

networks:
  bridged:
    driver: bridge

ou mettre ensuite ce fichier de conf ? toujours dans le même dossier docker/gadael/db ? 

pour la seconde méthode cela n'a pas marcher.

Posté(e)

Ca plutôt :

version: "2.1"
services:

  mongo:
    image: mongo:latest
    container_name: mongo
    ports:
    - 27017:27017
    restart: always
    volumes:
      - data-db:/data/db
    networks:
      - bridged

  gadael:
    image: webinage/gadael:0.0.9
    container_name: gadael
    ports:
      - 3000:3000
    environment:
      - LOGHTTP=true
      - CSRFPROTECTION=true
      - POSTPHONE=true
      - CALLBACK_URL=your.host.net
      - APP_HOST=
      - APP_PORT=3000
      - APP_COMPANY=
      - APP_LANGUAGE=fr
      - APP_CRYPTO_KEY=k8yb0brda2t
      - APP_TIMEOUT=
      - DB_INIT=true
      - DB_HOST=mongo/
      - DB_NAME=gadael
      - DB_AUTO_INDEX=true
      - LOGIN_ATTEMPT_IP=50
      - LOGIN_ATTEMPT_USER=7
      - LOGIN_ATTEMPT_LOG_EXPIRATION=20m
      - ACCOUNT_VERIFICATION=false
      - MAIL_HOST=localhost
      - MAIL_PORT=dock
      - MAIL_SECURE=
      - MAIL_USER=
      - MAIL_PASS=
      - MAIL_HEADER="Gadael email"
      - MAIL_ADDRESS=gadael@example.com
    restart: always
    depends_on:
      - mongo
    networks:
      - bridged

volumes:
  data-db:

networks:
  bridged:

Assure-toi d'autoriser les ports 3000 et 27017 dans le pare-feu de ton NAS.
Par contre tes notifications mails ne fonctionneront pas ainsi, faut passer par un serveur SMTP, voir https://github.com/gadael/gadael/blob/master/config.example.js

    // Here is an example with a gmail account
    // config.mailtransport = {
    //     host: 'smtp.gmail.com',
    //     port: 465,
    //     secure: true,           // use SSL
    //     auth: {
    //         user: 'user@gmail.com',
    //         pass: 'pass'
    //     }
    // };

 

Posté(e)

shad tu es un chef 🙂 

pour les port aucun soucis dans le pare-feu  idem pour l'email.

encore merci à toi 

Archivé

Ce sujet est désormais archivé et 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.