我有一个基于 Ubuntu 映像的非常简单的 docker 文件,询问用户他/她的名字并使用 Figlet 打印它。但是,在我构建映像并运行容器后,它没有显示任何内容。
Dockerfile:
# Download the base image ubuntu
FROM ubuntu
# Update
RUN apt-get update
# Install figlet
RUN apt-get install figlet
# Copy program
COPY program.sh /
# Execute
RUN /program.sh
Program.sh
#!/bin/bash
# Ask user for name
echo 'Please enter your name: '
read username
# Print name
figlet $username
它似乎可以毫无问题地构建和运行。我就是什么都看不见。我错过了什么吗?
答案 0 :(得分:2)
document.getElementById('id').setAttribute('data-lpignore', 'true')
是在构建期间运行的指令,并且您无法在构建期间读取输入。
如果你希望它在你运行时运行
RUN
使用
docker run ...
附注
正如@super 评论的那样,您必须在 CMD /program.sh
# Or
ENTRYPOINT /program.sh
命令中使用 -it
标志才能读取用户输入。
正如@oreopot 回答的那样,您的脚本必须具有执行权限。
答案 1 :(得分:1)
在 dockerfile 中的 COPY
之后和 RUN
命令之前,添加以下命令:
我们将执行权限授予 program.sh
RUN chmod +x /program.sh