gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:50:58 25 4
gpt4 key购买 nike

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

我有一个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

有谁知道为什么会这样?

最佳答案

尝试运行:

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

Source

关于docker - 为什么Dockerfile RUN打印回显选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42508344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com