Cómo solucionar el problema de no poder introducir eñes o tildes en el shell de comandos (bash) de un contenedor Docker.
- Síntomas, problema de no poder introducir eñes o tildes en shell de contenedor Docker.
- Solución al error de introducción de eñes, tildes, acentos en bash shell de contenedor Docker.
Síntomas, problema de no poder introducir eñes o tildes en shell de contenedor Docker
Cuando accedemos a la línea de comandos (shell o bash) de un contenedor Docker, por ejemplo, al contenedor «mssql» (en este enlace indicamos cómo desplegar un contenedor Docker con MS SQL Server):
1 |
docker exec -it mssql bash |
Y, una vez en el shell, necesitamos introducir una eñe o una sílaba con tilde (acento). Por ejemplo, en el contenedor mssql con Microsoft SQL Server, si queremos abrir la utilidad de la línea de comandos sqlcmd de SQL Server y tenemos una eñe en la contraseña del usuario «sa», comprobaremos que no nos deja escribirla:
1 2 |
cd /opt/mssql-tools18/bin/ ./sqlcmd -S localhost -U SA -P MiContrase |
Como podremos observar, no nos dejará introducir una eñe o un carácter con tilde. A continuación explicamos cómo solucionar este problema.
Solución al error de introducción de eñes, tildes, acentos en bash shell de contenedor Docker
Para acceder al shell de comandos de un contenedor Docker y poder escribir eñes, tildes o acentos, usaremos el argumento LANG=C.UTF-8. Por ejemplo, para abrir un shell del contenedor «mssql» donde se puedan introducir eñes, tildes, etc., ejecutaremos el comando:
1 |
docker exec -it -e LANG=C.UTF-8 mssql bash |
Una vez en el shell, ahora sí que podremos introducir caracteres especiales (eñe, letras con tilde/acento, etc.):
1 2 |
cd /opt/mssql-tools18/bin/ ./sqlcmd -S localhost -U SA -P MiContraseña |
Para el caso de SQL Server, si muestra este error:
1 2 |
Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]. Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : Client unable to establish connection. For solutions related to encryption errors, see https://go.microsoft.com/fwlink/?linkid=2226722. |
Podremos usar el argumento -C para no comprobar certificado:
1 |
./sqlcmd -S localhost -U SA -P MiContraseña -C |
Conectará con la base de datos y podremos ejecutar consultas SQL y escribir eñes, tildes, etc.: