2014-12-02 3 views
0

В Dockerfile, RUN имеет 2 формы:Как закодировать произвольную команду в форме exec в файле Docker?

  • RUN <command> (команда запускается в оболочке -/бен/ш -c - форма оболочки)
  • RUN ["executable", "param1", "param2"] (EXEC форма)

Как кодировать >, >>, <, &&|| как форма экстерьера?


Это очень простой файл докеров. Я хочу переписать RUN <command> как форму exec.
Но я не знаю как.

# Dockerfile 
FROM ubuntu:14.04 
RUN date > /tmp/out && echo 'hello world' >> /tmp/out 
CMD cat /tmp/out 
+0

Не могли бы вы дать некоторый контекст, описывающий, что стоит за этим запросом? Он читается как «учитывая два варианта: A и B, я хочу делать A, но делая B», что не имеет смысла. – Bryan

ответ

5

По https://docs.docker.com/engine/reference/builder/#/run:

В отличие от формы оболочки, ехес форма не вызывает командную оболочку. Это означает, что нормальной обработки оболочки не происходит.

поэтому я думаю, что нет никакого прямого способа использовать эти оболочки интерпретированы символы (такие как >, >>, <, &&, ||) в ехес форме.