Forum Linux.debian/ubuntu Comment passer les caractères accentués à un shell bash (dans docker)?

Posté par  . Licence CC By‑SA.
Étiquettes :
0
13
jan.
2016

Bonjour,

Je roule un conteneur debian:jessie et un autre ubuntu:trusty dans un système Docker sur un NAS Synology. J'accède à mon NAS via SSH, puis je connecte un shell bash à mon conteneur par la commande:
docker exec -t -i test bash

Par contre, une fois dans le shell bash, je suis incapable d'entrer quelqu'accent que ce soit. Pourtant, si je reviens à mon SSH, je n'ai aucun problème.

J'ai essayé de changer le clavier à l'intérieur des conteneur avec les commandes "loadkeys fr" ou avec "dpkg-reconfigure console-data" mais dans les deux cas, même en sélectionnant un clavier français, je ne suis pas en mesure de taper des accents. Et, par ailleurs, je ne me retrouve pas pour autant avec un clavier AZERTY… la configuration du clavier reste inchangée.

Est-ce quelqu'un aurait des suggestions pour m'aider svp?

Merci

  • # locale ?

    Posté par  (site web personnel) . Évalué à 1.

    Tu peux vérifier la configuration courante avec la commande locale.

    Tu veux probablement faire un : apt-get install locales && dpkg-reconfigure locales

    pour activer la ou les locales de ton choix.

    Debian Consultant @ DEBAMAX

  • # La bible sur docker et locale

    Posté par  (site web personnel) . Évalué à 2.

    • [^] # Re: La bible sur docker et locale

      Posté par  . Évalué à 1.

      Merci pour vos commentaires.

      En faisant le commande 'locale' j'obtenais exactement le même résultat que décrit au lien mentionné ci-dessus (http://jaredmarkell.com/docker-and-locales/):
      'LANG=
      LANGUAGE='

      J'ai essayé 'apt-get install locales && dpkg-reconfigure locales' puis choisir '220' pour fr-fr, avec le résultat suivant:
      'Generating locales (this might take a while)…
      fr_FR.ISO-8859-1… done
      Generation complete.'

      Mais le résultat est le même qu'avant:
      1- les variables LANG et LANGUAGE ne sont pas initialisées si je tape 'locale'
      2- Quand j'appuie sur la lettre Q de mon clavier QWERTY, j'obtiens toujours un Q et non un A
      3- Je suis incapable de taper des lettre accentuées dans le shell

      Je suis assez débutant un docker et linux… D'autres suggestions?

      Merci.

      • [^] # Re: La bible sur docker et locale

        Posté par  (site web personnel) . Évalué à 2.

        fr_FR.ISO-8859-1… done

        À moins que tu aies spécifiquement besoin de fr_FR.ISO-8859-1 (et dans ce cas toi seul le sait), installe fr_FR.UTF-8 à la place, il y a très peu de chance que tu aie besoin de fr_FR.ISO-8859-1, et si tu utilises Putty sous Windows (hypothèse, configure-le en UTF-8 (option "translation").

        1- les variables LANG et LANGUAGE ne sont pas initialisées si je tape 'locale'

        Normalement dpkg-reconfigure locales te propose non seulement de choisir les locales à installer, mais aussi laquelle doit être par défaut, tu dois mettre fr_FR.UTF-8 par défaut.

        Autrement tu peux faire tout cela à la main :

        # installe la locale fr_FR.UTF-8
        sudo locale-gen fr_FR.UTF-8
        
        # mets la par défaut
        sudo update-locale LANG=fr_FR.UTF-8

        Après ça déconnecte-toi et reconnecte-toi.

        2- Quand j'appuie sur la lettre Q de mon clavier QWERTY, j'obtiens toujours un Q et non un A

        Ça n’est pas lié à la locale

        3- Je suis incapable de taper des lettre accentuées dans le shell

        Probablement parce que tu as un shell ISO-8859-15 et un terminal UTF-8.

        Vérifie que tu as bien le suffixe .UTF-8 dans ton shell non-distant en tapant locale. Quand tu aurais la même langue UTF-8 en local et en distant, avec un terminal UTF-8, tu n’auras aucun problème.

        ce commentaire est sous licence cc by 4 et précédentes

        • [^] # Re: La bible sur docker et locale

          Posté par  . Évalué à 1.

          Allo,

          Quelques clarifications:
          1- En faisant "locale" dans mon shell hors de Docker, je constate que LANG=en_US.utf8 mais que la variable LANGUAGE n'existe pas

          2- J'ai refait dpkg-reconfigure locales et j'ai choisi fr_FR.UTF-8 à la place. J'ai aussi essayé avec en_US.UTF-8 et avec fr_CA.UTF-8. Bien sûr, à la question suivante (langue par défaut pour tout le système), je choisissais "3" --> la langue que je venais de configurer

          Dans tous les cas, j'obtenais un message de succès:
          Generating locales (this might take a while)...
          fr_CA.UTF-8... done

          par contre, par le suite, quand je tape locale j'obtiens invariablement:
          LANG=
          LANGUAGE=

          Comme si le shell bash (dans mon docker) refusait de changer les variables d'environnement..?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.