¿Cómo establecer los alias de bash para contenedores docker en Dockerfile?

Soy nuevo en Docker. Descubrí que podemos establecer variables de entorno usando la instrucción ENV en Dockerfile. Pero, ¿cómo se configuran los alias de bash para los commands largos en Dockerfile?

Básicamente como siempre lo haces, agregándolo a los usuarios .bashrc :

 FROM foo RUN echo 'alias hi="echo hello"' >> ~/.bashrc 

Como de costumbre, esto solo funcionará para shells interactivos:

 docker build -t test . docker run -it --rm --entrypoint /bin/bash test hi /bin/bash: hi: No such file or directory docker run -it --rm test bash $ hi hello 

Para los shells no interactivos, debe crear un pequeño script y ponerlo en su path, es decir:

 RUN echo -e '#!/bin/bash\necho hello' > /usr/bin/hi && \ chmod +x /usr/bin/hi 

Si su alias usa parameters (es decir, hi Jim -> hello Jim ), simplemente agregue $* :

 RUN echo -e '#!/bin/bash\necho hello $*' > /usr/bin/hi && \ chmod +x /usr/bin/hi 

Para crear un alias de un command existente, también puede usar ln -s :

ln -s $(which <existing_command>) /usr/bin/<my_command>

Puedes usar entrypoint, pero no funcionará para alias, en tu Dockerfile:

 ADD dev/entrypoint.sh /opt/entrypoint.sh ENTRYPOINT ["/opt/entrypoint.sh"] 

Su entrypoint.sh

 #!/bin/bash set -e function dev_run() { } export -f dev_run exec "$@" 

(Copiar / pegar rápidamente, lo siento)

    Intereting Posts