在 dockerfile 中插入条件 运行 语句

Inserting a conditional RUN statement inside a dockerfile

我正在尝试编写一个 docker 文件,它将 运行 一个 运行 命令在 package.json 文件中搜索一个词并对其进行操作:

这是我的简单docker文件:

FROM ubuntu:14.04

COPY package.json package.json

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

如您所见,我只想要一个简单的 if 语句,但出现此错误:

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

我应该如何 运行 我的命令? 谢谢。

就像在 shell 处输入时一样,您需要在 fi:

之前换行或分号
RUN if grep -q "grunt" package.json; then echo succeed; fi
                                             add this ^