[RESOLU] Lancement sous docker

#1

Bonjour,

depuis peu, mon image docker ne marche plus.

Je ne suis pas un expert docker donc je tatone. J’utilise cette commande pour lancer l’image:

sudo docker run -p 9876:9876 -e LOCAL_USER_ID=id -u-v /opt/kresus/data:/home/user/data --name kresus -ti -d bnjbvr/kresus

Sauf que jusque la, rien ne se passe, je suis obligé de lancer cette seconde commande pour démarrer kresus:

sudo docker run -it bnjbvr/kresus /bin/bash

Tout fonctionnait à merveille jusqu’a mon dernier reboot, désormais j’ai cette erreur (meme apres avoir pullé la dernière image):

npm ERR! Linux 4.4.0-62-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g" "kresus"
npm ERR! node v6.12.3
npm ERR! npm  v3.10.10
npm ERR! path /usr/local/lib/node_modules/kresus/node_modules/cryptiles/node_modules/boom
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/local/lib/node_modules/kresus/node_modules/cryptiles/node_modules/boom' -> '/usr/local/lib/node_modules/kresus/node_modules/pouchdb/node_modules/cryptiles/node_modules/boom'
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/local/lib/node_modules/kresus/node_modules/cryptiles/node_modules/boom' -> '/usr/local/lib/node_modules/kresus/node_modules/pouchdb/node_modules/cryptiles/node_modules/boom'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! Please include the following file with any support request:
npm ERR!     /weboob/npm-debug.log
npm ERR! code 1

Avez-vous une idée de ce que je fais mal ? :smiley:

#2

Bonjour,

Merci pour le rapport de bug !

  1. Pouvez-vous vérifier que vous utilisez bien la dernière version de l’image Docker, à l’aide de docker pull bnjbvr/kresus ?

  2. La commande docker run lance une nouvelle instance de Kresus dans Docker. Il est possible que vous avez ayez déjà d’autres instances qui tournent, ce que vous pouvez voir avec docker ps -a. Si c’est le cas, il est conseillé de ne faire qu’utiliser une seule instance de Docker Kresus (vous pouvez supprimer celles qui ne sont pas nécessaires avec docker rm DOCKER_IDDOCKER_ID est l’identifiant hashé utilisé par Docker). Pour relancer une image déjà existante, il est nécessaire d’effectuer docker start DOCKER_ID.

  3. Kresus utilise le temps au démarrage de l’image pour effectuer quelques petites actions : installer le logiciel qui se connecte aux banques (Weboob) ou le mettre à jour, régler des problèmes de droits, mettre en place les répertoires nécessaires, etc. Il est donc possible qu’il faille attendre quelques minutes avant que la connexion avec la web app fonctionne, au démarrage. Il n’est donc pas nécessaire de lancer la deuxième commande pour que Kresus fonctionne, normalement.

Je vous invite donc à supprimer toutes les images existantes (vous ne devriez pas perdre de données puisqu’elles sont dans le volume de données “/opt/kresus/data”) et à réessayer avec une seule image, en la créant de nouveau, une fois pour toutes.

Si cela ne suffit pas, pouvez-vous envoyer le contenu de docker logs DOCKER_ID sur le forum svp, après avoir vérifié qu’aucune donnée personnelle n’était présente dedans ?

Merci et bon week-end,
Benjamin

#3

J’ai supprimé toutes les précédentes images, re fait un pull et si je regarde les logs, ca finit par cette erreur :

Collecting webencodings (from html5lib>=0.999999999->mechanize->-r /tmp/requirements.txt (line 10))
  Downloading https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
Installing collected packages: lxml, cssselect, idna, certifi, chardet, urllib3, requests, python-dateutil, PyYAML, unidecode, Pillow, webencodings, html5lib, mechanize, futures, enum34
  Running setup.py install for PyYAML ... done
Successfully installed Pillow-5.2.0 PyYAML-3.13 certifi-2018.4.16 chardet-3.0.4 cssselect-1.0.3 enum34-1.1.6 futures-3.2.0 html5lib-1.0.1 idna-2.7 lxml-4.2.3 mechanize-0.3.6 python-dateutil-2.7.3 requests-2.19.1 unidecode-1.0.22 urllib3-1.23 webencodings-0.5.1
[ENTRYPOINT] Done updating weboob dependencies.
[ENTRYPOINT] Trying to update kresus...
[ENTRYPOINT] Done.
[ENTRYPOINT] Changing rights...
[ENTRYPOINT] Running kresus as user.
su: unrecognized option '--name'
Usage: su [options] [LOGIN]

Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd
#4

C’est peut-être un souci dans l’ordre des arguments Docker. Si la ligne de commande que vous avez entrée est la suivante :

sudo docker run -p 9876:9876 -e LOCAL_USER_ID=`id -u-v` /opt/kresus/data:/home/user/data -ti -d bnjbvr/kresus --name kresus

Il est nécessaire que le dernier argument soit bnjbvr/kresus, ce qui est après est sinon interprété comme une commande à exécuter avec l’image en question. La commande correcte serait donc bien :

sudo docker run -p 9876:9876 -e LOCAL_USER_ID=`id -u-v`  --name kresus /opt/kresus/data:/home/user/data -ti -d bnjbvr/kresus

Est-ce que ça fonctionne mieux comme ça ?

1 Like
#5

Super c’était bien ca !

une petite coquille toutefois dans la ligne, c’est ca :

sudo docker run -p 9876:9876 -e LOCAL_USER_ID=`id -u`  --name kresus -v /opt/kresus/data:/home/user/data -ti -d bnjbvr/kresus 

Merci pour le support rapide !

#6

Super, merci de nous avoir tenus au courant ! Je modifie le sujet pour marquer qu’il est résolu.

Si vous avez des retours ou des demandes sur Kresus, n’hésitez-pas à les nous faire parvenir ! (dans un nouveau sujet idéalement :slight_smile:)

Bonne journée,
Benjamin