在Dockerfile中,RUN
有两种形式:
RUN <command>
(该命令在shell中运行 - / bin / sh -c - shell形式)RUN ["executable", "param1", "param2"]
(执行形式)如何将>
,>>
,<
,&&
||
编码为执行形式?
这是一个非常简单的dockerfile。我想重写RUN <command>
作为执行形式
但我不知道如何。
# Dockerfile
FROM ubuntu:14.04
RUN date > /tmp/out && echo 'hello world' >> /tmp/out
CMD cat /tmp/out
答案 0 :(得分:5)
根据https://docs.docker.com/engine/reference/builder/#/run:
与shell表单不同,exec表单不会调用命令shell。这意味着不会发生正常的shell处理。
因此,我认为没有直接的方法可以使用这些由shell解释的字符(例如>
,>>
,<
,&&
,{{1} })以exec形式。