最新のMacOS用Dockerを最新のMacOSで使用する。Dockerfile RUNでエコーオプションが表示されるのはなぜですか?
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コマンドである:
は私がDockerfileを持っています。そのコマンドによって生成されたファイルの内容は次のとおりです。
-e [ssh_connection]
ssh_args = -o ControlMaster=no -o ControlPersist=60s
-eオプションも同様に印刷されます!エールで選択されたオプションは、改行が解析されていることからも明らかです。実際、コンテナに接続して同じコマンドを再度実行すると、正しいファイルの内容が得られます。私は、これはRUNで各引数を引用docker build
に問題があるかもしれないと思ったが、私はecho "-e" "X\nY"
コマンドプリントを実行した場合でも:
X
Y
誰もこれが起こる理由を任意のアイデアを持っていますか? RUN
に二重引用符を使用しない
RUN bash -c 'echo -e ...'
私は、 '/ binに/ echo'で' echo'を置き換えます。 –