Aller au contenu

Docker : conflit entre gotify et joplin ?


Diplo95

Messages recommandés

Bonjour

j'ai un serveur joplin qui fonctionne parfaitement depuis des mois. J'essaie aujoud'hui de monter un serveur de notifications gotify en docker. Mais il semble qu'il y ait un conflit entre les deux, sans que j'arrive à comprendre où.

Voici le docker-compose de joplin :

version: '3'

services:
    db:
        image: postgres:13.1 # Download latest postgres image
        container_name: postgres-db # Here you can give the container a name of your liking
        restart: unless-stopped # Restart if not stopped manually
        volumes:
            - /volume1/docker/joplin/joplin-data:/var/lib/postgresql/data # Make database files persistent. Otherwise your data is lost when the container is destroyed.
        environment:
            - APP_PORT=22300 # Specify port joplin-server is reachable at
            - POSTGRES_PASSWORD=****** # Specify database password
            - POSTGRES_USER=****** # Specify database user
            - POSTGRES_DB=joplin # Specify database name
    app:
        image: joplin/server:latest # Download joplin-server image 2.2.5 the latest at the time
        container_name: joplin-server
        labels:
          - com.centurylinklabs.watchtower.enable=true
        depends_on:
            - db
        ports:
            - "22300:22300" # Expose internal port to LAN
        restart: unless-stopped
        environment:
            - APP_BASE_URL=https://joplin.**********.fr # If you do not want to expose joplin-server to the internet use your LAN-IP and port
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=****** # Must be the same as above
            - POSTGRES_DATABASE=joplin # Must be the same as above
            - POSTGRES_USER=******* # Must be the same as above
            - POSTGRES_PORT=5432 # Postgres internal port
            - POSTGRES_HOST=db

Voici le docker-compose du serveur gotify :

version: "3"

services:
  app:
    image: gotify/server
    container_name: gotify
    restart: unless-stopped
    ports:
      - 127.0.0.1:8764:80
    environment:
      - TZ='Europe/Paris'
      - GOTIFY_DEFAULTUSER_NAME=admin
      - GOTIFY_DEFAULTUSER_PASS=admin
      - GOTIFY_PASSSTRENGTH=10
      - GOTIFY_UPLOADEDIMAGESDIR=data/images
      - GOTIFY_PLUGINSDIR=data/plugins
    volumes:
      - ./data:/app/data


 

Lorsque j'essaie de monter le conteneur gotify, voici le retour en ligne de commandes :

root@DS220:/volume1/docker/gotify/script# docker-compose up -d
[+] Running 5/5
 ⠿ app Pulled                                                                                                             9.3s
   ⠿ 00d3338ddf14 Pull complete                                                                                           3.5s
   ⠿ 557ea8465e9a Pull complete                                                                                           4.6s
   ⠿ 3ecb6f16884e Pull complete                                                                                           5.5s
   ⠿ 793754435704 Pull complete                                                                                           6.6s
WARN[0009] Found orphan containers ([sabnzbd sonarr radarr jellyfin postgres-db watchtower]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
[+] Running 1/2
 ⠿ Container joplin-server  Recreated                                                                                    39.9s
 ⠼ Container gotify         Starting                                                                                      6.4s
Error response from daemon: driver failed programming external connectivity on endpoint gotify (a9b441ca577a1716274272aca0f4d30b8df97e992610938065568ad31b04d1fa): Error starting userland proxy: listen tcp4 127.0.0.1:8000: bind: address already in use
root@DS220:/volume1/docker/gotify/script#

 

Et donc je constate qu'il me recrée l'image joplin, et je ne sais pas pourquoi. Plus problématique : en fait, il le recrée, mais ça plante : je ne peux plus synchroniser avec les clients joplin.

J'ai pensé à un problème de ports, alors j'ai cherché des conflits :

root@DS220:/volume1/docker/gotify/script# netstat -tulpn | grep LISTEN
tcp        0      0 0.0.0.0:662             0.0.0.0:*               LISTEN      10076/statd         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9150/sshd: /usr/bin
tcp        0      0 127.0.0.1:33304         0.0.0.0:*               LISTEN      2004/synomibactiono
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      20407/postgres      
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 0.0.0.0:892             0.0.0.0:*               LISTEN      10052/mountd        
tcp        0      0 0.0.0.0:8989            0.0.0.0:*               LISTEN      501/docker-proxy    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      13522/smbd          
tcp        0      0 0.0.0.0:8096            0.0.0.0:*               LISTEN      419/jellyfin        
tcp        0      0 127.0.0.1:512           0.0.0.0:*               LISTEN      29315/termd         
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      29198/docker-proxy  
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:161           0.0.0.0:*               LISTEN      10516/snmpd         
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      3325/docker-proxy   
tcp        0      0 0.0.0.0:6690            0.0.0.0:*               LISTEN      5194/syncd          
tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN      18872/transmission-
tcp        0      0 0.0.0.0:10211           0.0.0.0:*               LISTEN      26005/docker-proxy  
tcp        0      0 0.0.0.0:10212           0.0.0.0:*               LISTEN      25963/docker-proxy  
tcp        0      0 0.0.0.0:7878            0.0.0.0:*               LISTEN      32194/docker-proxy  
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      29171/docker-proxy  
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 0.0.0.0:5001            0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      13522/smbd          
tcp        0      0 0.0.0.0:5357            0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 0.0.0.0:4045            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      7439/rpcbind        
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      3351/docker-proxy   
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 0.0.0.0:10002           0.0.0.0:*               LISTEN      15980/nginx: master
tcp        0      0 127.0.0.1:915           0.0.0.0:*               LISTEN      23389/httpd24       
tcp        0      0 0.0.0.0:51413           0.0.0.0:*               LISTEN      18872/transmission-
tcp6       0      0 :::662                  :::*                    LISTEN      10076/statd         
tcp6       0      0 :::22                   :::*                    LISTEN      9150/sshd: /usr/bin
tcp6       0      0 :::3001                 :::*                    LISTEN      23745/AdGuardHome   
tcp6       0      0 :::443                  :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::892                  :::*                    LISTEN      10052/mountd        
tcp6       0      0 :::8989                 :::*                    LISTEN      506/docker-proxy    
tcp6       0      0 :::3261                 :::*                    LISTEN      -                   
tcp6       0      0 :::445                  :::*                    LISTEN      13522/smbd          
tcp6       0      0 :::3263                 :::*                    LISTEN      -                   
tcp6       0      0 :::8000                 :::*                    LISTEN      29203/docker-proxy  
tcp6       0      0 :::3264                 :::*                    LISTEN      -                   
tcp6       0      0 :::3265                 :::*                    LISTEN      5859/scsi_plugin_se
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
tcp6       0      0 :::9090                 :::*                    LISTEN      3331/docker-proxy   
tcp6       0      0 :::6690                 :::*                    LISTEN      5194/syncd          
tcp6       0      0 :::10211                :::*                    LISTEN      26020/docker-proxy  
tcp6       0      0 :::10212                :::*                    LISTEN      25969/docker-proxy  
tcp6       0      0 :::7878                 :::*                    LISTEN      32200/docker-proxy  
tcp6       0      0 :::9000                 :::*                    LISTEN      29177/docker-proxy  
tcp6       0      0 :::5000                 :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::5001                 :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::139                  :::*                    LISTEN      13522/smbd          
tcp6       0      0 :::5005                 :::*                    LISTEN      17507/httpd         
tcp6       0      0 :::5357                 :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::4045                 :::*                    LISTEN      -                   
tcp6       0      0 :::5006                 :::*                    LISTEN      17507/httpd         
tcp6       0      0 :::111                  :::*                    LISTEN      7439/rpcbind        
tcp6       0      0 :::8080                 :::*                    LISTEN      3360/docker-proxy   
tcp6       0      0 :::80                   :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::10002                :::*                    LISTEN      15980/nginx: master
tcp6       0      0 :::51413                :::*                    LISTEN      18872/transmission-
tcp6       0      0 :::53                   :::*                    LISTEN      23745/AdGuardHome   
root@DS220:/volume1/docker/gotify/script#

Mais il n'y a rien qui me saute aux yeux.

Une petite idée ? Merci

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

Salut @Diplo95 quelques remarques :

  • APP_PORT devrait être dans le service app et pas db à mon avis, je ne vois pas ce que la DB ferait de cette info.
  • Je ne comprends pas, tu lances un seul docker compose up et ça te crée les deux conteneurs joplin et gotify qui sont sensés être dans des fichiers compose séparés si j'en crois ce que tu écris. Quelque chose cloche.
  • Tu as des avertissements sur des app résiduelles dans ta stack, il pourrait être bon de suivre le conseil renvoyé dans le warning.
  • Tu n'exposes Gotify que sur le localhost du NAS, donc tous les conteneurs qui ne sont pas en mode host ne pourront pas le joindre, je ne sais pas si c'est voulu...? ça perd beaucoup de son intérêt selon moi.
  • Le port 8000 je ne sais pas d'où il sort.
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @.Shad., merci de te pencher sur mon problème.

  • APP_PORT : je prends ta remarque, mais j'avoue que je trouve Docker très pratique, mais que je n'ai encore tout compris des rouages du fonctionnement. Donc Joplin fonctionnant parfaitement, pour l'instant je ne creuse pas plus loin,
  • je ne suis pas assez calé en réseau pour être sûr de ne pas répondre une bêtise, j'essaie quand même : je pensais rendre joignable gotify par l'intermédiaire de mon proxy inverse. J'imagine alors que n'importe quelle appli qui souhaite ensuite push des notifications fera appel à ce service par une requête qui passera par le wan. Si c'est le cas, effectivement, ça peut être plus intéressant de ne pas faire sortir ces messages de mon réseau local.

J'ai cependant résolu mon problème. Il était dû à ces warnings concernant les containers orphelins. J'ai fait une rapide recherche et découvert que docker compose utilise le nom du dossier dans lequel le docker-compose.yml est situé ici. Ainsi, si on met tous ses  docker-compose.yml dans des dossiers qui portent le même nom, docker-compose trouve alors différents projets qui portent le même nom.

J'ai résolu en utilisant cette méthode : https://stackoverflow.com/questions/50947938/docker-compose-orphan-containers-warning

Dans mon dossier script, j'ai crée un fichier .env dans lequel j'ai inséré une variable d'environnement :

COMPOSE_PROJECT_NAME=myproject

Et j'ai maintenant un container qui se construit sans intérférer avec le container joplin et une appli qui tourne. Ne me reste plus qu'à me pencher sur la config réseau de mon appli.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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.