如何在Dockerfile中将任意命令编码为exec表单?

kev*_*kev 0 docker

在Dockerfile中,RUN有2种形式:

  • RUN <command> (该命令在shell中运行 - /bin/sh -c - shell形式)
  • RUN ["executable", "param1", "param2"] (执行形式)

如何编码>,>>,<,&& ||作为高管的形式?


这是一个非常简单的dockerfile.我想重写RUN <command>为exec表单.
但我不知道怎么做.

# Dockerfile
FROM ubuntu:14.04
RUN date > /tmp/out && echo 'hello world' >> /tmp/out
CMD cat /tmp/out
Run Code Online (Sandbox Code Playgroud)

ret*_*eto 6

根据https://docs.docker.com/engine/reference/builder/#/run:

与shell表单不同,exec表单不会调用命令shell.这意味着不会发生正常的shell处理.

因此,我认为有使用这些壳解释的字符(如没有直接的办法 >,>>,<,&&,||在EXEC形式).