交互式命令在Dockerfile中
我正在尝试使用适当的Dockerfile
使用Dockerfile
docker build
命令自动创build一个开发Docker镜像。 我需要在RUN
命令中运行的其中一个脚本需要用户单击并阅读其许可协议。 因此有两个问题:
-
Dockerfile
中所有RUN
命令的输出在Dockerfile
? - 什么解决scheme可以与上述命令交互? 现在,
docker build
命令就会被阻塞,要求用户input一个无限循环。
RUN
命令的输出在构build期间显示在您的terminal中。 Docker的构build过程是完全非交互式的,所以你必须find一些自动接受这些术语的方法(几乎每一个软件都允许这个,认为apt-get install -y...
)或者使用一些shell向导来回显接受回到过程或任何( 预计也许?)。
你也可以在几个步骤中做到这一点,从Dockerfile开始,直到交互部分之前。 然后
docker build -t image1 .
现在只是
docker run -it --name image2 image1 /bin/bash
你有一个shell里面,你可以做你的交互式命令,然后做类似的事情
docker commit image2 myuser/myimage:2.1
docker commit
的文档
https://docs.docker.com/engine/reference/commandline/commit/
您可能需要指定一个新的CMD或ENTRYPOINT,如文档中所述
用新的CMD和EXPOSE指令提交一个容器
例如,使用wine的一些docker镜像在几个步骤中完成,安装wine,然后启动并configuration在wine中启动的软件,然后docker commit