如何在Docker构建期间运行命令,这需要一个tty?

mar*_*ius 6 linux tty docker dockerfile

我需要在Docker构建期间运行一些需要tty的脚本(Docker在构建期间不提供).在脚本下,脚本使用该read命令.有了 tty,我可以做的事情(echo yes; echo no) | myscript.sh.

没有它,我会得到一些我不完全理解的奇怪错误.那么在构建期间有没有办法使用这个脚本(假设它不是我的修改?)

编辑:这是一个更明确的错误示例:

FROM ubuntu:14.04
RUN echo yes | read
Run Code Online (Sandbox Code Playgroud)

失败的是:

Step 0 : FROM ubuntu:14.04
 ---> 826544226fdc
Step 1 : RUN echo yes | read
 ---> Running in 4d49fd03b38b
/bin/sh: 1: read: arg count
The command '/bin/sh -c echo yes | read' returned a non-zero code: 2
Run Code Online (Sandbox Code Playgroud)

小智 0

您不需要 tty 来将数据提供给脚本。只要按照你的建议做一些事情(echo yes; echo no) | myscript.sh就可以了。另请确保在尝试执行文件之前先复制文件。就像是COPY myscript.sh myscript.sh