Ich habe die folgende Umgebung so eingestellt, dass während der Installation von apt-get keine Frage / kein Dialog gestellt wird:
ENV DEBIAN_FRONTEND noninteractive # export DEBIAN_FRONTEND="noninteractive"
Welches ist gleichbedeutend mit:
export DEBIAN_FRONTEND="noninteractive"
Wenn Sie jedoch ein Image aus einer Docker-Datei erstellen, sagt debconf am Ende einer bestimmten Debian / Ubuntu-Paketinstallation (unter Verwendung von apt-get install):
debconf: unable to initialize frontend: Noninteractive # export DEBIAN_FRONTEND="noninteractive"
debconf: (Bareword "Debconf::FrontEnd::Noninteractive" not allowed while "strict subs" in use at (eval 35) line 3, <> line 1.)
debconf: falling back to frontend: Noninteractive
Subroutine BEGIN redefined at (eval 36) line 2, <> line 1.
Wow ... ich habe meinen Fehler gefunden. Es gibt keine Möglichkeit, Kommentare in ENV-Zeilen in Dockerfile einzufügen. Ich werde mich selbst antworten, da ich mir sicher bin, dass dies einige andere Menschen beißen wird ...
Ok, die Ursache des Problems war: Sie können # nicht verwenden, um Kommentare zu ENV-Zeilen in Dockerfiles zu schreiben, da es keinen Begrenzer gibt, der "end of env variable" sagt Variable.
dh mit der Dockerfile-Zeile:
Die Variable:
wird genau diese ganze Zeile enthalten:
und ist gleichbedeutend mit:
Ich habe meine Frage fast abgebrochen, aber mit Suchmaschinen und Stack Exchange werden einige Leute hier eines Tages wahrscheinlich ihren Fehler finden ;-)
quelle
ENV
für zu verwendenDEBIAN_FRONTEND
, siehe: github.com/docker/docker/issues/4032