Dockerfile运行读命令给我错误

下午好,我正在和Docker一起构build一些图片,我发现有些设备会询问用户的密码等问题。

在创build图像的过程中可能会询问用户,然后将该仪表传递给另一个命令,例如,此代码向我发送一个错误

FROM ubuntu:16.04 SHELL ["/bin/bash","-c"] RUN ["echo","========== Enter root password for db =========="] RUN ["/bin/bash","read","pass"] RUN debconf-set-selections <<< "mysql-server mysql-server/root_password password $pass" RUN debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $pass"` 

错误消息如下所示:

The command '/bin/bash read pass' returned to non-zero code: 127

然后构build过程失败,任何build议做到这一点,在编译时从用户读取?

dockerbuild设运行在非交互模式 – 这意味着它不能处理你的阅读命令来接收来自用户input的密码,而build设形象。

我会build议使用构build参数dockerfunction,而不是 – 在这里看到https://docs.docker.com/engine/reference/builder/#arg,所以你可以读取构build图像之前从用户传递,然后通过构buildarg构build但请记住,使用shell命令和纯文本传递密码并不安全&#x3002;