在dockerfile中的if语句中运行npm命令

问题描述 投票:0回答:1

我有一个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命令。为什么?

谢谢

bash docker dockerfile
1个回答
0
投票

万一有人有一天会遇到同样的问题:如果你想在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错误。

© www.soinside.com 2019 - 2024. All rights reserved.