Docker 容器未显示任何输出

时间:2021-07-18 12:52:47

标签: docker

我有一个基于 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

它似乎可以毫无问题地构建和运行。我就是什么都看不见。我错过了什么吗?

2 个答案:

答案 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