在docker文件中插入条件RUN语句 [英] Inserting a conditional RUN statement inside a dockerfile

查看:672
本文介绍了在docker文件中插入条件RUN语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



这是我的简单的docker文件:

  FROM ubuntu:14.04 

COPY package.json package.json

运行如果grep -qgruntpackage.json;然后回声成功fi

,你可以看到我只想要一个简单的if语句,但它得到这个错误:

 步骤2:运行如果grep -qgruntpackage.json;然后回声成功fi 
--->运行在af460df45239
/ bin / sh:1:语法错误:文件结束意外(期望fi)
INFO [/ bin / sh -c如果grep -qgrunt package.json;然后回声成功fi]返回一个非零代码:2

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

解决方案

就像在shell上打字一样,您需要在$ $之前加上换行符或分号c $ c> fi :

 运行如果grep -qgruntpackage.json;然后回声成功; fi 
添加这个^


I am trying to write a docker file which will run a RUN command to search for a word in a package.json file and act upon it:

this is my simple dockerfile:

FROM ubuntu:14.04

COPY package.json package.json

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

as you can see i just want a simple if statement but it get this error:

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

How should i run my command? thanks.

解决方案

Just like when typing at the shell, you need either a newline or a semicolon before fi:

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

这篇关于在docker文件中插入条件RUN语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆