Bash:为什么在按回车键后我的读取命令没有结束?

时间:2019-07-08 08:19:01

标签: bash docker docker-compose sh

我有一个bash脚本,在构建和运行Docker容器时需要运行。当我独立运行脚本时,它运行良好。我按下回车键后,读取命令结束。但是,当我放入docker run命令以通过docker运行脚本时,即使多次按return键,读命令也不会结束。

#!/bin/bash
read -p "Enter = IP Address: "  ip
export Ip=$ip

这是我的Dockerfile的内容

FROM mono:5.20
RUN mono --version
ADD ./game-logic-csharp /gl
RUN msbuild /gl/sol.sln
EXPOSE 80
RUN ["chmod", "+x", "/gl/startup.sh"]
ENTRYPOINT [ "/gl/startup.sh"]

Console Output

按回车键结束输入后,读取命令应结束。但是,我一直按回车键,但过程从未继续进行。

1 个答案:

答案 0 :(得分:0)

使用下一个命令:

docker run -it your_image

根本原因是您错过了-i,请参阅this,这使容器无法收到您的输入:

  

-interactive,-i即使未连接STDIN仍保持打开状态

如果您使用docker-compose,请记住在撰写文件旁边添加:

stdin_open: true
tty: true

stdin_open与docker run中的-i相同,tty与-t相同。