Docker:安装过程中的回显输入

Docker:安装过程中的回显输入,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我是docker的新手,需要安装一个在安装过程中需要大量输入的文件 在一个普通的bash脚本中,我会回显命令来填充输入。如何在dockerfile中模仿这种行为 这是我的剧本: #: Copy CPLEX installer binary from S3. COPY cplex_odee1210.linux-x86-64.bin /setup/ #: Install CPLEX and update .bashrc RUN chmod +x /setup/cplex_odee1210.li

我是docker的新手,需要安装一个在安装过程中需要大量输入的文件

在一个普通的bash脚本中,我会回显命令来填充输入。如何在dockerfile中模仿这种行为

这是我的剧本:

#: Copy CPLEX installer binary from S3.
COPY cplex_odee1210.linux-x86-64.bin /setup/



#: Install CPLEX and update .bashrc
RUN chmod +x /setup/cplex_odee1210.linux-x86-64.bin 
RUN bash cplex_odee1210.linux-x86-64.bin 
RUN echo 2              #: - Press 2 for english 
RUN echo -ne '\n'       #: - Press ENTER to confirm prompt 
RUN echo -ne '\n'       #: - Press ENTER to continue 
RUN echo 1              #: - Press 1 to accept license agreement 
RUN echo -ne '\n'       #: - Press ENTER to confirm prompt 
RUN echo -ne '\n'       #: - Press ENTER to accept default path 
RUN echo -ne '\n'       #: - Press ENTER to install 
RUN echo -ne '\n'       #: - Press ENTER to continue 
RUN echo -ne '\n'       #: - Press ENTER to continue 
RUN echo 2              #: - Press 2/ENTER to say no to product usage data collection 
RUN echo -ne '\n'       #: - Press ENTER to confirm prompt 
RUN echo -ne '\n'       #: - Press ENTER to exit the installer 
RUN echo 'export PATH=$PATH:/opt/ibm/ILOG/CPLEX_Optimizer1210/cplex/bin/x86-64_linux' >>~/.bashrc 
RUN source ~/.bashrc
这是运行的,但没有通过此步骤:

Step 9/54 : RUN bash cplex_odee1210.linux-x86-64.bin
 ---> Running in c6404632b1b0
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

===============================================================================
Choose Locale...
----------------

    1- Deutsch
  ->2- English
    3- Espa?ol
    4- Fran?ais
    5- Portugu?s  (Brasil)

CHOOSE LOCALE BY NUMBER: 

我是否需要将bash run命令链接在一起?有没有办法做到这一点?

在Dockerfile中,每个RUN语句都是按顺序执行的。如前所述,您无法运行交互式程序,需要以其他方式传递输入(如果无法重构程序,您可以使用shell重定向来提供来自文件或使用herdoc的输入)