如何从Dockerfile创建交互式图像?

时间:2015-11-08 12:01:39

标签: docker pyqt dockerfile

我想从Dockerfile创建一个关于PyQt5的图像。 以下是Dockerfile中的部分代码。

RUN cd PyQt-gpl-5.5.1 &&\ 
        python3  configure.py

当代码执行时,它会问我"您是否接受许可条款?" ,但我无法输入任何字词。

我不想使用命令' commit'。 那么如何从Dockerfile创建图像交互式

1 个答案:

答案 0 :(得分:2)

如果shell管道不起作用,您可以回退到an expect script

您可以在visity/docker-build-android

中看到its Dockerfile中使用的内容
RUN dpkg --add-architecture i386 && apt-get update && \
    apt-get install -y --force-yes expect ...

tools/android-accept-licenses.sh允许docker build tp在首先接受许可后使用android

expect {
  "Do you accept the license '*'*" {
        exp_send "y\r"
        exp_continue
  }
  eof
}

使用by the Dockerfile

COPY tools /opt/tools
ENV PATH ${PATH}:/opt/tools
RUN ["/opt/tools/android-accept-licenses.sh", "android update sdk --all --no-ui --filter platform-tools,tools,build-tools-22.0.1,android-22,addon-google_apis_x86-google-22,extra-android-support,extra-android-m2repository,extra-google-m2repository,sys-img-armeabi-v7a-android-22"]

此处,android-accept-licenses.sh是主机/opt/tools的一部分,它被复制到图像中,然后用于RUN指令。