RUN |
Exécuter |
---|---|
Dockerfile | Docker |
Syntaxe
RUN commande | Format interpréteur de commande |
RUN ["executable", "param1", "param2"] | Format exec |
Paramètres
Nom | Description |
---|---|
commande | Ce paramètre permet d'indiquer la commande avec ses paramètres |
executable | Ce paramètre permet d'indiquer le nom de l'exécutable |
param1, param2 | Ce paramètre permet d'indiquer la liste des paramètres de l'exécutable |
Description
Cette instruction permet d'indiquer qu'il faut exécuter une commande de style Linux.
Remarques
- Comme toujours, pour rendre votre Dockerfile plus lisible, compréhensible et maintenable, divisez les instructions RUN longues ou complexes sur plusieurs lignes séparées par des barres obliques inverses (\).
- L'instruction RUN exécutera toutes les commandes dans une nouvelle couche au-dessus de l'image actuelle et validera les résultats. L'image validée résultante sera utilisée pour la prochaine étape du Dockerfile.
- La superposition des instructions RUN et la génération de validations sont conformes aux concepts fondamentaux de Docker où les commites sont économe et les conteneurs peuvent être créés à partir de n'importe quel point de l'historique d'une image, tout comme le contrôle de code source.
- Le format exec permet d'éviter les fusions accidentels de chaîne de caractères de l'interpréteur de commande et d'exécuter des commandes en utilisant une image de base ne contenant pas l'exécutable de l'interpréteur de commande spécifié.
- L'interpréteur de commande par défaut du format interpréteur de commande peut être modifié à l'aide de la commande SHELL.
- Si vous exécutez une commande et que le fichier existe et pourtant vous avez cette erreur :
/bin/sh: 1 ./tmp/monbash.sh: not found ERROR: Service 'quelconque' failed to build: The command '/bin/sh/ -c ./tmp/monbash.sh' return a non-zero code: 127 |
ou cette erreur :
/bin/bash^M: bad interpreter: No such file or directory |
Vous devriez vérifier qu'il ne s'agit pas d'un format DOS ou Windows mais bien UNIX ou Linux. Si c'est le cas, alors vous devriez envisager d'exécuter une commande «dos2unix /tmp/monbash.sh» sur votre fichier exécutable.
Exemple
L'exemple suivant permet d'installer l'éditeur vim dans l'image Docker :
RUN apt-get update && apt-get install -y vim
Dernière mise à jour : Vendredi, le 7 février 2020