у меня есть файл докеров, созданный с помощью ARG (имя ветки git). Я хочу запустить 2 оператора if, которые проверяют имя ветки git: поэтому, если это тестовая ветка, она запустит «npm run test», если это основная ветка, то «npm run build». Я пробовал это, но это не работает:
ВЫПОЛНИТЬ, если ["$GIT_BRANCH" = "тест"]; затем CMD npm test ; фи
ВЫПОЛНИТЬ, если ["$GIT_BRANCH" = "мастер"]; затем CMD npm build ; фи
Он работает с эхом, но не с командами npm. Зачем ?
Спасибо
В каком смысле не работает??
@larsks говорит /bin/sh: 1: CMD: не найдено Команда '/bin/sh -c if ["$GIT_BRANCH" = test"] ; затем CMD npm test ; fi' вернула ненулевой код: 127
на случай, если у кого-то однажды возникнет такая же проблема: если вы хотите запустить команду npm внутри операторов if в файле докеров, ключ должен написать:
RUN if [ "$GIT_BRANCH" = "test" ] ; then /usr/bin/npm test --force ; fi
RUN if [ "$GIT_BRANCH" = "master" ] ; then /usr/bin/npm build --force ; fi
И это сработает. --force необходим, иначе он запустит ошибку git.
Возможный дубликат RUN внутри условного оператора в Dockerfile