基本上,我将拥有一大堆将安装 ossec 代理的 ubuntu 容器,这些容器将与主服务器通信。我想自动化安装,因此使用dockerfile 中的 docker RUN变量我编写了一个脚本,该脚本下载 ossec tar 文件,将其解压缩,cds 进入目录并运行安装脚本,同时将参数传递给安装阶段的每个问题:
Dockerfile:
From ubuntu
RUN apt-get update && apt-get install -y \
build-essential \
libmysqlclient-dev \
postgresql-common \
wget \
tar \
RUN wget -U ossec https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
RUN tar -xvf ossec-hids-2.8.3.gz && \
rm -f ossec-hids-2.8.3.tar.gz && \
cd ossec-hids-2.8.3 && \
echo "en agent \n 192.168.1.50 y y y" | ./install.sh
当它在脚本中回显参数时, install.sh 脚本将无限循环第二个问题。注意我已经尝试了 printf、expect script、yes 命令并尝试了容器内的脚本。所有的结果都是一样的。