web-dev-qa-db-fra.com

Insertion d'une instruction RUN conditionnelle dans un dockerfile

J'essaie d'écrire un fichier docker qui exécutera une commande RUN pour rechercher un mot dans un fichier package.json et agir en conséquence:

c'est mon simple dockerfile:

FROM ubuntu:14.04

COPY package.json package.json

RUN if grep -q "grunt" package.json; then echo succeed fi

comme vous pouvez le voir, je veux juste une simple instruction if mais elle obtient cette erreur:

Step 2 : RUN if grep -q "grunt" package.json; then echo succeed fi
 ---> Running in af460df45239
/bin/sh: 1: Syntax error: end of file unexpected (expecting "fi")
INFO[0001] The command [/bin/sh -c if grep -q "grunt" package.json; then echo succeed fi] returned a non-zero code: 2

Comment dois-je exécuter ma commande? Merci.

31
lobengula3rd

Tout comme lors de la saisie dans le shell, vous avez besoin d'un saut de ligne ou d'un point-virgule avant fi:

RUN if grep -q "grunt" package.json; then echo succeed; fi
                                             add this ^
49
jwodder