Agregue un alias a Docker durante la compilation

Como bash comstackr un progtwig durante la fase de compilation de un contenedor, incluyo mis alias durante la construcción del contenedor dentro de .bashrc:

RUN cat /path/to/aliases.sh >> ~/.bashrc 

Cuando inicio el contenedor, todos los alias están disponibles. Esto ya es bueno, pero no es el comportamiento que quiero.

Ya busqué en Google y descubrí que el file .bashrc solo se carga cuando se usa un shell interactivo, que no es el caso durante la fase de compilation del contenedor.

Estoy tratando de forzar la carga de mis alias usando:

 RUN shopt -s expand_aliases 

o

 RUN shopt -s expand_aliases && alias 

o

 RUN /bin/bash -c "both commands listed above..." 

Lo cual sorprendentemente no cede al resultado esperado. [/ iron off]

Ahora mi pregunta: ¿cómo puedo establecer alias para la fase de construcción del contenedor?

Saludos

Cuando Docker ejecuta cada RUN , llama a la SHELL pasando el rest de la línea como argumento. El shell pnetworkingeterminado es /bin/sh . Documentado aquí

El problema aquí es que necesita para cada ejecución de capa, establecer los alias, ya que cada ejecución genera un nuevo shell. No encontré una forma no interactiva de get bash para leer el file .bashrc cada vez.

Entonces, solo por diversión lo hice, y está funcionando:

aliasshell.sh

 #!/bin/bash my_ls(){ ls $@ } $@ 

Dockerfile

 FROM ubuntu COPY aliasshell.sh /bin/aliasshell.sh SHELL ["/bin/aliasshell.sh"] RUN ls -l /etc/issue RUN my_ls -l /etc/issue 

Salida :

 docker build . Sending build context to Docker daemon 4.096 kB Step 1/5 : FROM ubuntu ---> f7b3f317ec73 Step 2/5 : COPY aliasshell.sh /bin/aliasshell.sh ---> Using cache ---> ccdfc54dd0ce Step 3/5 : SHELL /bin/aliasshell.sh ---> Using cache ---> bb17a8bf1c3c Step 4/5 : RUN ls -l /etc/issue ---> Running in 15ae8f0bb93b -rw-r--r-- 1 root root 26 Feb 7 23:55 /etc/issue ---> 0337da801651 Removing intermediate container 15ae8f0bb93b Step 5/5 : RUN my_ls -l /etc/issue <------- ---> Running in 5f58e0aa4e95 -rw-r--r-- 1 root root 26 Feb 7 23:55 /etc/issue ---> b5060d9c5e48 Removing intermediate container 5f58e0aa4e95 Successfully built b5060d9c5e48 
Intereting Posts