如何运行一个bash脚本,该脚本接受多个用户输入,作为dockerfile的一部分



我有下面的dockerfile,它需要运行owasp-bash文件进行安装。这个.sh文件需要来自用户的多个输入(如1、Y、enter(才能完成安装。

我如何从dockerfile提供这些输入,或者有没有方法跳过这些输入并继续安装。

这个码头文件是码头工人作品的一部分。

以下是码头文件

FROM ubuntu:20.04
RUN apt-get update && apt-get upgrade -y && apt-get clean
RUN apt-get install python3-pip -y
RUN apt-get install vim -y
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Indian
# Install OpenJDK-8
RUN apt-get install -y openjdk-8-jdk && 
apt-get install -y ant && 
apt-get clean;
# Fix certificate issues
RUN apt-get update && 
apt-get install ca-certificates-java && 
apt-get clean && 
update-ca-certificates -f
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
RUN apt-get install wget -y && 
apt-get install unzip -y && 
apt-get install zip -y
RUN mkdir /home/owasp
RUN wget -c https://github.com/zaproxy/zaproxy/releases/download/v2.11.0/ZAP_2_11_0_unix.sh -P /home/owasp
RUN chmod u+x /home/owasp/ZAP_2_11_0_unix.sh
RUN ./home/owasp/ZAP_2_11_0_unix.sh

使用Linux软件包:https://github.com/zaproxy/zaproxy/releases/download/v2.11.0/ZAP_2.11.0_Linux.tar.gz它具有相同的内容,但只是一个gzip化的tar文件:(ZAP下载的完整列表在https://www.zaproxy.org/download/

或者您可以随时扩展我们的docker图像https://www.zaproxy.org/docs/docker/

要为命令提供输入,请使用一些输入生成器并将其与命令管道连接。

典型的例子是使用命令CCD_ 1;y";输出时:

RUN yes|./own-shell-scrpit.sh

您可以运行printf 'yn1abcnxxx'并通过管道传输它;\n〃;处于换行符的printf状态(或输入(。

我建议添加一个ENTRYPOINT,这样它在默认情况下会调用bash脚本,但它为最终用户提供了传递不同参数的灵活性。请参阅官方文件。请记住,Dockerfile中提供的CMD是默认命令。您可以通过传递任何其他值来覆盖它。

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Indian
RUN apt-get update && apt-get upgrade -y && apt-get clean
RUN apt-get install python3-pip -y
RUN apt-get install vim -y
# Install OpenJDK-8
RUN apt-get install -y openjdk-8-jdk && 
apt-get install -y ant && 
apt-get clean;
# Fix certificate issues
RUN apt-get update && 
apt-get install ca-certificates-java && 
apt-get clean && 
update-ca-certificates -f
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
RUN apt-get install wget -y && 
apt-get install unzip -y && 
apt-get install zip -y
RUN mkdir /home/owasp
RUN wget -c https://github.com/zaproxy/zaproxy/releases/download/v2.11.0/ZAP_2_11_0_unix.sh -P /home/owasp
RUN chmod u+x /home/owasp/ZAP_2_11_0_unix.sh
ENTRYPOINT ./home/owasp/ZAP_2_11_0_unix.sh
CMD ['--some', '--default', '--args']

您甚至可以选择在生成时传递默认标志。因此,您的脚本将始终使用您在docker build --build-args DEFAULT_PARAMS=--foo上提供的默认标志运行,除非您覆盖它:

ARGS DEFAULT_PARAMS
FROM ubuntu:20.04
ENV DEFAULT_PARAMS=${DEFAULT_PARAMS}
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Indian
RUN apt-get update && apt-get upgrade -y && apt-get clean
RUN apt-get install python3-pip -y
RUN apt-get install vim -y
# Install OpenJDK-8
RUN apt-get install -y openjdk-8-jdk && 
apt-get install -y ant && 
apt-get clean;
# Fix certificate issues
RUN apt-get update && 
apt-get install ca-certificates-java && 
apt-get clean && 
update-ca-certificates -f
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
RUN apt-get install wget -y && 
apt-get install unzip -y && 
apt-get install zip -y
RUN mkdir /home/owasp
RUN wget -c https://github.com/zaproxy/zaproxy/releases/download/v2.11.0/ZAP_2_11_0_unix.sh -P /home/owasp
RUN chmod u+x /home/owasp/ZAP_2_11_0_unix.sh
ENTRYPOINT ./home/owasp/ZAP_2_11_0_unix.sh
CMD ${DEFAULT_PARAMS}

相关内容

  • 没有找到相关文章

最新更新