Shell Docker安装葡萄酒Dockerfile EULA

Shell Docker安装葡萄酒Dockerfile EULA,shell,docker,dockerfile,wine,eula,Shell,Docker,Dockerfile,Wine,Eula,在我的阿尔卑斯山形象上安装葡萄酒有点问题。 这是我的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 upd

在我的阿尔卑斯山形象上安装葡萄酒有点问题。 这是我的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 WineTracks期间,我有一个EULA屏幕: 当然,我没有权利写“是”。我试过:

RUN echo "yes" | sudo apt-get install wine1.8 winetricks
RUN sudo apt-get -y install wine1.8 winetricks

我能做些什么?

注意:为了启发起见,如果一个更有经验的linux/docker用户能够解释为什么我的解决方案适合我,我会很高兴

可能的解决办法: 我遇到了这个问题。我必须想尽一切办法,通过我的Dockerfile文件传递一个可以接受EULA的论点;在wine安装命令中添加“yes”的回显,如您所尝试的,设置环境变量等等。所以,这里不只你一个人。然而,我确实通过实验找到了一个非常简单的解决方案

事实证明,如果在安装wine之前安装TrueType core字体(EULA所针对的软件包),您可以像这样向其传递“是”输入,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
我知道这篇文章发表已经四个月了,但如果你还没有找到解决办法,我希望这能有所帮助