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 locales
cuando usa UbuntuRUN touch /usr/share/locale/locale.alias
antes de la llamada alocale-gen
para evitar un error fatal de archivo no encontradosed
guió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-8
Aquellos que usan Debian también deben instalar el
locales
paquete.Esta respuesta me ayudó mucho.
fuente
Solo agrega
en su Dockerfile. (Es posible que deba asegurarse de que el
locales
paquete esté instalado). No se necesita nada más para la operación básica. Mientras tanto, fuera de Ubuntu,locale-gen
no acepta ningún argumento, es por eso que ninguna de las 'correcciones' que lo usan funciona, por ejemplo, en Debian. Ubuntu ha parcheadolocale-gen
para 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-8
está disponible en todos los sistemas sin la necesidad de instalar nada, y debe ser en su mayoría suficiente.locales
.docker run
comando args en su lugar: stackoverflow.com/questions/28405902/…apt-get install -y locales
De 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
LANG
yLC_ALL
utilizando-e
al ejecutar su comando:No es necesario modificar el Dockerfile.
fuente
-e
cierto, los argumentos también funcionan con docker-compose.C.UTF-8
configuració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 instalarlocales
y ejecutarlocale-gen
despué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.gen
archivo.Simplemente
locale-gen
hará todo y el autor solo perdió ellocales
paquete.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-docker
controlador). 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
locale
la salida no cambia cuando se ejecutan comandos subsiguientes, ni cuando se ejecutanRUN
bloques 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?ENV
comoENV LC_ALL=en_US.UTF-8
.En lugar de restablecer la configuración regional después de la instalación del
noninteractive
paquete 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