You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像构建时如何为Shell脚本指定用户输入

解决Docker构建时自动为交互脚本输入参数的方法

当你需要在Docker构建阶段自动为install_script1.sh提供两个交互输入(root和/root)时,有几种轻量可靠的实现方式:

方法一:通过管道传递输入

利用echo或printf按顺序输出需要的输入内容,通过管道传递给脚本,每个输入值单独占一行:

使用echo

RUN echo -e "root\n/root" | ./install_script1.sh

使用printf(更稳定,避免不同环境下echo的行为差异)

RUN printf "root\n/root\n" | ./install_script1.sh

方法二:使用Shell Here文档

借助Shell的Here Document语法,直接将输入内容嵌入到Dockerfile中,传递给脚本的标准输入:

RUN ./install_script1.sh <<EOF
root
/root
EOF

可选优化:修改脚本支持命令行参数(如果允许改动脚本)

如果可以调整install_script1.sh的逻辑,让它直接读取命令行参数而非交互输入——比如在脚本里用$1获取第一个输入、$2获取第二个输入,那么Dockerfile可以更简洁:

RUN ./install_script1.sh root /root

这种方式更符合非交互脚本的设计规范,也避免了交互输入的不确定性。

内容的提问来源于stack exchange,提问作者user1245262

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:17:34