Estoy ejecutando un contenedor de Ubuntu Docker. Tengo un teclado noruego y necesito usar caracteres noruegos (øæå).
La codificación de caracteres de mi terminal está configurada en UTF-8 y estoy conectado a mi contenedor usando SSH. Sin embargo, no puedo escribir caracteres noruegos, ni copiar y pegar caracteres noruegos, ni usar CTL + SHIFT + U + 00f8.
Lo intenté:
locale-gen nb_NO.UTF-8
pero nada cambió. ¿Cómo configuro la configuración regional y el teclado dentro de un contenedor Docker?

apt-get -y install localescuando usa UbuntuRUN touch /usr/share/locale/locale.aliasantes de la llamada alocale-genpara evitar un error fatal de archivo no encontradosedguión es un poco torpe. Intentes/# \(en_US\.UTF-8 .*\)/\1/evitar repetir la frase de búsqueda en la cadena de reemplazo capturándola.ENV LANG=en_US.UTF-8 \ LANGUAGE=en_US \ LC_ALL=en_US.UTF-8Aquellos que usan Debian también deben instalar el
localespaquete.Esta respuesta me ayudó mucho.
fuente
Solo agrega
en su Dockerfile. (Es posible que deba asegurarse de que el
localespaquete esté instalado). No se necesita nada más para la operación básica. Mientras tanto, fuera de Ubuntu,locale-genno acepta ningún argumento, es por eso que ninguna de las 'correcciones' que lo usan funciona, por ejemplo, en Debian. Ubuntu ha parcheadolocale-genpara aceptar una lista de configuraciones regionales para generar, pero el parche en este momento no ha sido aceptado en Debian ni en ningún otro lugar.fuente
C.UTF-8está disponible en todos los sistemas sin la necesidad de instalar nada, y debe ser en su mayoría suficiente.locales.docker runcomando args en su lugar: stackoverflow.com/questions/28405902/…apt-get install -y localesDe hecho, he sufrido el mismo problema, pero ninguna de las respuestas proporcionadas funciona al 100% con debian: latest, incluso si proporcionan buenas pistas.
La mayor diferencia es que debe asegurarse de que tanto locales como locales-all estén instalados, este último ya contiene en_US.UTF-8, por lo que no tiene que generarlo con local-gen o dpkg-reconfigure .
Esto es lo que hice en mi Dockerfile para que funcione:
fuente
apt-cache show locales-all? Definitivamente sigue siendo un paquete oficial y está disponible en Debian.Especifique las variables de entorno
LANGyLC_ALLutilizando-eal ejecutar su comando:No es necesario modificar el Dockerfile.
fuente
-ecierto, los argumentos también funcionan con docker-compose.C.UTF-8configuración regional. Por lo general, no incluyen configuraciones regionales específicas del idioma (pen_US.UTF-8. Ej .). Para eso, necesita instalarlocales-all(grande) o instalarlocalesy ejecutarlocale-gendespués de finalizar/etc/locale.gen.Consejo: Explore los foros de documentación de contenedores, como el Foro de Docker .
Aquí hay una solución para debian y ubuntu , agregue lo siguiente a su Dockerfile:
fuente
Ustedes no necesitan esas cosas complejas para establecer configuraciones regionales en Ubuntu / Debian. Ni siquiera necesitas
/etc/local.genarchivo.Simplemente
locale-genhará todo y el autor solo perdió ellocalespaquete.Encontré este el más simple y el más efectivo. Confirmo que funciona en Ubuntu 16.04.
fuente
La respuesta de @ Mixel funcionó muy bien para la imagen de la ventana acoplable basada en Ubuntu que tenemos.
Sin embargo, también tenemos una imagen de ventana acoplable basada en centos para probar recetas a través del chef (usando el
kitchen-dockercontrolador). Uno de los paquetes que preinstalamos no se pudo instalar debido a que no se estableció ninguna configuración regional. Para instalar una configuración regional, tuve que ejecutar lo siguiente:Obtuve esta información de esta respuesta en ServerFault .
Después de ejecutar los comandos anteriores como parte de la ventana acoplable, el paquete se instaló sin errores. De
.kitchen.yml:fuente
No me gusta tener variables de entorno de Docker cuando no espero que el usuario de una imagen de Docker las cambie.
Ponlo en algún lugar de uno
RUN. Si no ha generado configuraciones regionales UTF-8, puede realizar el siguiente conjunto de comandos:fuente
localela salida no cambia cuando se ejecutan comandos subsiguientes, ni cuando se ejecutanRUNbloques subsiguientes , ni cuando se construye otra imagen usando la imagen actual como base. ¿Quizás se requiera alguna acción adicional para aplicar estos cambios?ENVcomoENV LC_ALL=en_US.UTF-8.En lugar de restablecer la configuración regional después de la instalación del
noninteractivepaquete de configuraciones regionales, puede responder las preguntas que normalmente se le hacen (que están deshabilitadas por ) antes de instalar el paquete para que los scripts del paquete configuren la configuración regional correctamente, este ejemplo establece la configuración regional en inglés ( Británico, UTF-8):fuente
Para mí, lo que funcionó en la imagen de ubuntu :
fuente
Usé esto (después
RUN apt-get install -y python3):E imprime
UTF8 works nice! 👌correctamente.fuente