Comment mettre en bash alias pour les conteneurs docker dans Dockerfile?
Je suis nouveau sur docker. J'ai trouvé que l'on peut définir des variables d'environnement à l'aide de ENV de l'instruction dans le Dockerfile. Mais comment peut-on définir bash alias pour de longues commandes dans Dockerfile?
- alias ont été considérées comme étant essentiellement obsolète pour un temps très long. L'utilisation d'une fonction. Il n'est plus besoin de toujours utiliser un alias. Comment est-ce que ces approches à partir de la fin des années 80 persister pendant si longtemps?
- Parce qu'ils sont pratiques et simples, bien sûr.
- Peut-être que vous devriez expliquer ensuite comment utiliser les fonctions de la place.
- Les alias sont simples, pratiques, fragiles et sujettes à erreur. Les fonctions sont tout aussi faciles à utiliser, mais de donner plus de souplesse et de robustesse. Il y a beaucoup de ressources disponibles sur la façon de les utiliser.
Vous devez vous connecter pour publier un commentaire.
Fondamentalement comme vous le faites toujours, en l'ajoutant à l'utilisateur
.bashrc
:Comme d'habitude, cela ne fonctionne que pour shell interactif:
Pour les non-shell interactif, vous devez créer un petit script et le mettre dans votre chemin d'accès, c'est à dire:
Si votre alias utilise des paramètres (ie.
hi Jim
->hello Jim
), il suffit d'ajouter"$@"
:Pour créer un alias d'une commande existante, pourrait également utiliser
ln -s
:ln -s $(which <existing_command>) /usr/bin/<my_command>
alias ll='ls -lh'
qui n'est pas possible avec les liens symboliques.Si vous souhaitez utiliser des alias seulement dans Dockerfile, mais pas à l'intérieur du conteneur, puis le chemin le plus court est
ENV
déclaration:Et pour une utilisation dans le conteneur de la façon déjà décrite:
La plupart du temps j'utilise des alias seulement sur la construction de la scène et de ne pas aller à l'intérieur de conteneurs, premier exemple est plus rapide, plus simple et plus claire pour chaque utilisation de jour.
vi ~/.bash_aliases
source ~/.bash_aliases
Vous pouvez utiliser le point d'entrée, mais il ne fonctionnera pas pour les alias, dans votre Dockerfile:
Votre
entrypoint.sh
(Rapide copier/coller, désolé)
J'ai juste ajouté ça à mon application.dockerfile
et à l'intérieur de la
initbash_profile.sh
qui ajoute juste mon alias personnalisés et pas besoin de source de l' .bashrc fichier.travaillé un régal!
Une autre option est d'utiliser le "docker exec -il de commande" à partir de l'extérieur du récipient, et il suffit d'utiliser votre propre .bashrc ou .bash_profile (ce que jamais vous préférez)
par exemple.
docker exec -it docker_app_1 bash