Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Containeur se lance mais impossible de se connecter #44

Closed
Doctor-Who opened this issue Feb 13, 2018 · 21 comments
Closed

Containeur se lance mais impossible de se connecter #44

Doctor-Who opened this issue Feb 13, 2018 · 21 comments

Comments

@Doctor-Who
Copy link

Bonjour,

  • Serveur DELL PowerEdge R630
  • openSUSE 42.3 64 bits
  • Docker version | 17.09.1-ce
  • Docker-compose version | 1.17.0
  • CPU | 56
  • Memory | 135.1 GB

Contenu du fichier docker-compose.yml :

version: '3.4'
services:

  lizmap:
    image: jancelin/docker-lizmap:latest
    restart: always
    ports:
     - 80:80
     - 443:443
    volumes:
     - /srv/data/lizmap_project:/home
     - /srv/data/lizmap_var:/var/www/websig/lizmap/var
     - /srv/data/tmp:/tmp
    links:
     - qgiserver:qgiserver

  qgiserver:
    image: jancelin/qgis-server:2.18-wfsOutputExtension
    restart: always
    volumes:
      - /srv/data/lizmap_project:/home
    expose:
      - 80

J'accède bien à la page d'accueil (vide) de lizmap
Connexion à l'admin impossible avec id : admin / pass : admin
Aucun message d'erreur, rien, la page se recharge mais rien ne se passe et je ne suis pas connecté (testé avec firefox, chromium en mode normal et navigation privée juste au cas où)
J'ai essayé de saisir un autre utilisateur au hasard : lizmap me répond bien que l'authentification est incorrecte

Au cas où ce serait du à ma distribution exotique, j'ai réessayé en commentant l'ensemble des volumes pour écarter tout problème de droits et ne fonctionner qu'avec des données interne (même si un chown -R 33:33 /srv/data/lizmap_project /srv/data/lizmap_var /srv/data/tmp est censé résoudre le problème)

Quand j'entre en commande dans le container (via portainer par ex), je parcours bien depuis le containeur les projets et fichiers QGIS ajouté depuis mon hôte openSUSE mais lizmap ne voit rien hélas (ni projet, pas de login possible)

J'espère que ces infos complètes vous permettrons de me filer un coup de main :)

@jancelin
Copy link
Owner

Salut,
Essaye la version 3.1.6 de Lizmap, la latest c'est la master.
jancelin/docker-lizmap:3.1.6

Je suis en Thaïlande, ça va être dur de debuger plus....

@Doctor-Who
Copy link
Author

Salut Julien,

Pas de problème, je peux attendre ton retour.
Idem avec la version 3.1.6 ... je ne comprends vraiment pas ce qui peut clocher ... J'ai chowner en récursif mes répertoires en 33:33

@kikislater
Copy link

Salut Nicolas,

Un :
docker ps -a
donne quoi ?
Je penses qu'un docker images serait utile aussi

@Doctor-Who
Copy link
Author

Doctor-Who commented Feb 14, 2018

Salut Sylvain :)
Content de te voir ici, ça donne ça

CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS              PORTS                                      NAMES
cc198da84301        jancelin/docker-lizmap:3.1.6                   "/bin/sh -c /start.sh"   4 hours ago         Up 4 hours          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   data_lizmap_1
33b62e5157af        jancelin/qgis-server:2.18-wfsOutputExtension   "/bin/sh -c /start.sh"   4 hours ago         Up 4 hours          80/tcp                                     data_qgiserver_1
3ab13e0674d0        portainer/portainer                            "/portainer"             29 hours ago        Up 28 hours         0.0.0.0:9000->9000/tcp                     orchestration_01
REPOSITORY               TAG                       IMAGE ID            CREATED             SIZE
jancelin/qgis-server     2.18-wfsOutputExtension   cd0a2bb2fe73        6 days ago          989MB
jancelin/docker-lizmap   3.1.6                     1a1970f27897        6 days ago          333MB
traefik                  latest                    1f4f407e37eb        2 weeks ago         49.5MB
portainer/portainer      latest                    7120867536bd        3 weeks ago         33.9MB

@kikislater
Copy link

Tu peux regarder les logs de chaque container avec ça
docker logs CONTAINER_ID

Mais je regarderais plus le log lizmap situé dans ton lizmap var soit pour toi /srv/data/lizmap_var/logs.db Pour la lecture c'est du sqlite : https://docs.3liz.com/fr/admin/logs.html

Perso je penches plus pour un problème de droits

@Doctor-Who
Copy link
Author

Le dossier est vide, je n'ai pas de base logs.db

@kikislater
Copy link

Problème de droits donc !
Essaye de modifier les droits avant la création des containers. Il me semble que j'ai déjà eu le problème mais je ne me rappelle plus ce que j'avais pour résoudre à part supprimer mes containers et les recréer mais sans docker compose dans mon cas.

@Doctor-Who
Copy link
Author

Le hic c'est que même avec mes dossiers en 33:33 quand je lance la création des dockers, il me rebascule l'ensemble des sous dossiers en root.

@kikislater
Copy link

Même dans un répertoire /home/$USER ?

@jancelin
Copy link
Owner

Essaye

docker exec -it containername bash

Et

chown www-data:www-data -R /home

@jancelin jancelin reopened this Feb 15, 2018
@jancelin
Copy link
Owner

jancelin commented Feb 15, 2018

Quand on fait un chown dans un container soit on le fait de l'extérieur avec le PID soit à l'intérieur, docker exec, avec l'utilisateur de la distribution, ici debian.

@jancelin
Copy link
Owner

img_20180215_174243
envoyé depuis Phuket, je pouvais pas résister....

@Doctor-Who
Copy link
Author

Doctor-Who commented Feb 26, 2018

Salut,

Merci d'avoir pris le temps sur tes vacances de me débloquer.
Hélas cela ne fonctionne toujours pas, c'est vraiment étrange.
Même en lançant le docker compose depuis un utilisateur dans le groupe docker il me créé les sous répertoire en root ???!!!
Même en rechmodant derrière depuis le containeur, cela ne fonctionne toujours pas...
Je dois passer à coté de quelque chose ...

PS : désolé pas eu une minute pour faire le suivi avant cela

@kikislater
Copy link

kikislater commented Feb 26, 2018

Salut,
C'est dans quel répertoire ? Dans un répertoire du /home/$USER il refait la même chose. Il y a une sécurité linux sûrement depuis longtemps mais actif depuis peu qui rebascule automatiquement les droits sur root ou responsable du paquet ta distribution. Du moins j'ai ça sur Manjaro/Archlinux, c'est pour ça que je demandes sur le répertoire du $USER.
Le système de fichier a sûrement été créé par défaut sous suse avec l'option :

‘--preserve-root’ Fail upon any attempt to recursively change the root directory, /. Without --recursive, this option has no effect

Tu peux faire un chmod avec l'option '--no-preserve-root' => https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html ou chmod 775 -R pour test.
Tu peux aussi ajouter root au groupe www-data pour test uniquement.

Docker s'exécute toujours en root même si tu ajoutes l'utilisateur au groupe.
If you want to be able to run docker as a regular user, add yourself to the docker group.
Warning: Anyone added to the docker group is root equivalent. More information moby/moby#9976 and https://docs.docker.com/engine/security/security/
Source : https://wiki.archlinux.org/index.php/Docker#Installation.

@Doctor-Who
Copy link
Author

Quand www-data n'existe pas ? Comment dois je faire ? Chez moi c'est wwwrun:www par exemple (sous openSUSE il n'y a pas d'utilisateur et de groupe avec le même ID.
Je teste sur un rep' user mais cela n'arrange pas mes points de montage :/

@jancelin
Copy link
Owner

On travaille dans un container qui n'est pas de même distribution que l'hote avec les pid.

root@20c13c8bce67:/# ls -l /var/www/websig/lizmap/var
total 40
-rwxrwxr-x  1 root     www-data 3072 Jan 29 09:28 cacheTemplate.db
drwxrwxr-x  5 www-data www-data 4096 Jan 29 11:36 config
drwxrwxr-x  2 www-data www-data 4096 Feb 26 11:19 db
drwxrwxr-x  2 www-data www-data 4096 Jan 29 09:28 lizmap-theme-config
drwxrwxr-x  2 www-data www-data 4096 Feb  5 09:45 log
drwxrwxr-x  2 www-data www-data 4096 Jan 29 09:28 mails
drwxrwxr-x 10 root     www-data 4096 Jan 29 09:28 overloads
drwxrwxr-x  2 root     www-data 4096 Jan 29 09:28 sessions
drwxrwxr-x  3 root     www-data 4096 Jan 29 09:28 themes
drwxrwxr-x  2 www-data www-data 4096 Jan 29 09:28 uploads
root@20c13c8bce67:/# ls -ln /var/www/websig/lizmap/var
total 40
-rwxrwxr-x  1  0 33 3072 Jan 29 09:28 cacheTemplate.db
drwxrwxr-x  5 33 33 4096 Jan 29 11:36 config
drwxrwxr-x  2 33 33 4096 Feb 26 11:19 db
drwxrwxr-x  2 33 33 4096 Jan 29 09:28 lizmap-theme-config
drwxrwxr-x  2 33 33 4096 Feb  5 09:45 log
drwxrwxr-x  2 33 33 4096 Jan 29 09:28 mails
drwxrwxr-x 10  0 33 4096 Jan 29 09:28 overloads
drwxrwxr-x  2  0 33 4096 Jan 29 09:28 sessions
drwxrwxr-x  3  0 33 4096 Jan 29 09:28 themes
drwxrwxr-x  2 33 33 4096 Jan 29 09:28 uploads
root@20c13c8bce67:/# 

donc si l'on veux changer des droits directement de l'hote il faut faire par exemple

chown 33:33 -R /home

@Doctor-Who
Copy link
Author

Doctor-Who commented Feb 26, 2018

Le répertoire home est défini dans /srv plutôt que home. Les droits sont bons lizmap:users
Même chose quand j'essaye de lancer avec une nouvel utilisateur qui a son home dans /home/$user

Julien, le chown en 33:33 est une des étapes que j'ai faites au tout début quand j'ai vu que cela ne fonctionnait pas (vu dans ta doc de CentOS d'ailleurs)

Les droits me semblent bons (le groupe 33 = video) :

drwxr-xr-x  2   33 video   6 26 févr. 12:27 lizmap_project
drwxr-xr-x 11 root root  211 26 févr. 12:27 lizmap_var
drwxr-xr-x  2 root root    6 26 févr. 12:29 tmp
-rwxrwxr-x  1 root video 3072  2 févr. 16:28 cacheTemplate.db
drwxrwxr-x  5   33 video 4096  8 févr. 12:58 config
drwxrwxr-x  2   33 video   67 26 févr. 12:32 db
drwxrwxr-x  2   33 video   28  2 févr. 16:28 lizmap-theme-config
drwxrwxr-x  2   33 video   49 26 févr. 12:27 log
drwxrwxr-x  2   33 video   28  2 févr. 16:28 mails
drwxrwxr-x 10 root video  191  2 févr. 16:28 overloads
drwxrwxr-x  2 root video   28  2 févr. 16:28 sessions
drwxrwxr-x  3 root video   29  2 févr. 16:28 themes
drwxrwxr-x  2   33 video   28  2 févr. 16:28 uploads

J'ai une précision : je pars de 0, je n'ai aucune instance de lizmap actuelle. Peut être me manque t'il des fichiers ? Sur la doc Docker, tu indiques qu'il faut recopier certains fichiers d'une installation. Est-ce que c'est à faire où la doc coté docker hub n'est pas à jour ?

@Doctor-Who
Copy link
Author

Juste pour vous dire que je ne suis pas complètement boulet : portainer tourne avec un volume extérieur sans problème et j'ai également pgadmin4 qui se lance correctement.

@Doctor-Who
Copy link
Author

J'ai trouvé !
En entrant dans le container, j'ai pu lire les logs lizmap et voir :

warning 2018-03-07 15:15:45     [2]     session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_pathis correct (/var/lib/php5/sessions)     /var/www/websig/lib/jelix/core/jSession.class.php       89

J'ai chowné en www-data le répertoire sessions dans /var/lib/php5 et cela fonctionne, j'ai accès à l'admin lizmap.

@jancelin
Copy link
Owner

jancelin commented Mar 7, 2018

👍

@kikislater
Copy link

Donc c'était bien un problème de droits dans le container.
Intéressant !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants