我有一个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"]
按回车键结束输入后,读取命令应结束。但是,我一直按回车键,但过程从未继续进行。
答案 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相同。