作者:一个不起眼的小人物 | 来源:互联网 | 2023-02-10 14:39
在最新的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接收到了更加疯狂的情况,正如被解析的新行所证明的那样.事实上,如果我附加到容器并再次运行相同的命令,我会得到正确的文件内容.我认为这可能是docker build
在RUN中引用每个参数的问题,但即使我运行echo "-e" "X\nY"
命令打印:
X
Y
有谁知道为什么会这样?
1> Idan..:
试试跑步:
RUN bash -c 'echo -e ...'
资源