为什么Dockerfile RUN打印回显选项?

在最新的macOS上使用最新的Docker for Mac。

我有一个Dockerfile:

FROM debian:8 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update -y -q \ && apt-get install -y -q apt-utils \ && apt-get upgrade -y -q \ && apt-get install -y -q ssh build-essential libssl-dev libffi-dev python-dev python-pip python-six openjdk-7-jdk \ && mkdir -p /etc/ansible \ && echo -e "[ssh_connection]\nssh_args = -o ControlMaster=no -o ControlPersist=60s\n" > /etc/ansible/ansible.cfg 

问题在于echo命令。 该命令生成的文件的内容是:

 -e [ssh_connection] ssh_args = -o ControlMaster=no -o ControlPersist=60s 

-e选项也被打印了! echo的这个选项更疯狂了,正如被parsing的新行显而易见的那样。 事实上,如果我附加到容器并再次运行相同的命令,我得到正确的文件内容。 我认为这可能是一个与运行在Docker的每个参数引用docker build的问题,但即使我运行echo "-e" "X\nY"命令打印:

 X Y 

有没有人有任何想法,为什么会发生?

尝试运行:

 RUN bash -c 'echo -e ...' 

资源