在最新的macOS上使用最新的Docker for Mac。爲什麼Dockerfile RUN打印回顯選項?
我有一個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選項!這個選項已經被回聲挑選出來了,正如被解析的換行符所顯示的那樣。事實上,如果我附加到容器並再次運行相同的命令,我會得到正確的文件內容。我想這可能是與docker build
引述RUN每個參數的問題,但是即使我運行echo "-e" "X\nY"
命令打印:
X
Y
沒有人有任何想法,爲什麼會發生這種情況?
我剛剛更換'echo'用'/斌/ echo',因爲我不想處理雙引號。 –