我有一个dockerfile,它是用ARG(git分支的名称)构建的。我想运行2个if语句来测试git分支的名称:所以如果它是测试分支,那么它将运行“npm run test”,如果它是master分支然后是“npm run build”。我试过这个,但它不起作用:
如果[“$ GIT_BRANCH”=“test”]则运行;那么CMD npm测试;科幻
如果[“$ GIT_BRANCH”=“master”]则运行;那么CMD npm build;科幻
它适用于echo但不适用于npm命令。为什么?
谢谢
万一有人有一天会遇到同样的问题:如果你想在dockerfile中的if语句中运行一个npm命令,关键是写:
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错误。