Ist es möglich, die Fragen, die bei der Installation einiger Pakete mit apt-get als Dialoge angezeigt werden, irgendwie zu beantworten?
Zum Beispiel versuche ich, einen Container einzurichten, der das mail-stack-delivery
Paket enthält mit:
FROM ubuntu
RUN apt-get install -y mail-stack-delivery
Diese Docker-Datei generiert jedoch beim Erstellen Dutzende von Fehlern, die wie folgt aussehen:
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 11.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Soweit ich weiß, kann ich einfach nicht auf die Dialoge antworten, aber gibt es eine Möglichkeit, einen Parameter zu übergeben, um jede Frage im Voraus zu beantworten? Ich weiß, dass es nur einige Konfigurationen ändert, damit ich es nachträglich tun kann, aber vermutlich ist es besser, die Installationsskripte dies tun zu lassen, damit alles richtig eingestellt wird.
quelle
RUN apt-get -y -qq install python-pip php-mbstring php-bcmath
, die das Erstellen meiner Docker-Datei an einer Eingabeaufforderung mit der Meldung stoppteA new version (/usr/lib/php/7.0/php.ini-production.cli) of configuration file /etc/php/7.0/cli/php.ini is available, but the version installed currently has been locally modified
....What do you want to do about modified configuration file php.ini
...1. install the new version, 2. keep the local version
.... Durch Hinzufügen dieser Umgebung wurde die EingabeaufforderungSie sollten DEBIAN_FRONTEND = nicht interaktiv als envvar festlegen. In den meisten Fällen wird dies zumindest dazu führen, dass bei der Installation keine Fehler auftreten.
Wie bereits bei @Azdle erwähnt, können Sie mit debconf-set-selections bestimmte Elemente festlegen.
quelle
Wie immer fand etwas mehr Suche die Antwort.
Die Antwort lautet
debconf-set-selections
. Manpage: http://manpages.ubuntu.com/manpages/oneiric/en/man1/debconf-set-selections.1.htmlUm die Optionen zu finden, die eingestellt werden können, verwenden Sie sie
debconf-get-selections
auf einem System, auf dem das Paket bereits installiert ist. Sie müssendebconf-utils
für den zweiten Befehl installieren .quelle
Dies ist eine funktionierende Lösung:
ARG DEBIAN_FRONTEND = nicht interaktiv
quelle
ENV DEBIAN_FRONTEND noninteractive
hat bei mir nicht funktioniertauch nicht
ARG DEBIAN_FRONTEND=noninteractive
aber
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
tatquelle
BEISPIEL Mit Erfolg:
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections sudo apt-get install -y -q <package name>
quelle