我在 Alpine 图片上安装Wine时遇到了一些问题。
这是我的Dockerfile:
RUN dpkg --add-architecture i386 && sudo apt-get update
RUN sudo apt-get install software-properties-common python-software-properties
RUN sudo add-apt-repository ppa:ubuntu-wine/ppa
RUN sudo apt-get update
RUN sudo apt-get install wine1.8 winetricks
RUN sudo apt-get purge software-properties-common python-software-properties
RUN rm -rf /tmp/* /var/lib/apt/lists/* /root/.cache/*
CMD /bin/bash;
一切似乎都运行良好,但是在sudo apt-get install wine1.8 winetricks期间,我有以下EULA屏幕:
当然,我没有写"is"的权利。我试过了 :
RUN echo "yes" | sudo apt-get install wine1.8 winetricks
RUN sudo apt-get -y install wine1.8 winetricks
我能做什么 ?
最佳答案
注意:出于启发性的考虑,如果一个经验丰富的linux / docker用户可以解释为什么我的解决方案对我有用,那么我会喜欢的。
可能的解决方案:
我遇到了这个确切的问题。我必须尝试过所有可能的方法来通过将接受EULA的Dockerfile传递参数。如您所试,包括在wine安装命令中传递"is"的回显,设置环境变量等等。因此,您并不孤单。但是,我确实通过实验找到了一个非常简单的解决方案。
事实证明,如果在安装wine之前安装TrueType核心字体(EULA所针对的软件包),则可以像这样将其传递为“yes”输入,并且wine将永远不会提示输入EULA:
RUN echo "yes" | apt install ttf-mscorefonts-installer -y
我不确定为什么会这样。我怀疑这是因为安装wine会在此过程中安装其他几个软件包/依赖关系,而echo / pipe方法不会扩展到wine尝试安装的所有软件包。也许通过单独安装字体,wine安装脚本会因为已存在而忽略了软件包,或者字体安装中的某个文件记录了EULA接受响应。
这是我的Dockerfile的内容。我在Ubuntu 16.04 LTS上,使用Docker版本18.02.0-ce,构建fc4de44:
FROM ubuntu:16.04
RUN dpkg --add-architecture i386
RUN apt-get update -y
RUN echo "yes" | apt install ttf-mscorefonts-installer -y
RUN apt-get install wine -y
我看到这篇文章发布已经四个月了,但是如果您还没有找到解决方案,希望对您有所帮助!
关于shell - Docker安装Wine Dockerfile EULA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47156320/