Ich versuche, apt-utils
auf Docker zu installieren, weil ich gerade apt-get update
die Fehlermeldung erhalten habe : debconf: delaying package configuration, since apt-utils is not installed
. Also habe ich eine Zeile zum Installieren hinzugefügt apt-utils
(zusammen mit curl
):
RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl
Aber ich bekomme immer noch diesen Fehler, der mich glauben lässt, dass mein Befehl nicht funktioniert hat. Unten ist meine Ausgabe, wenn ich versuche, das Bild zu erstellen.
Step 5/12 : RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl
---> Running in 6e6565ff01bd
Get:1 http://security.debian.org jessie/updates InRelease [94.4 kB]
Ign http://deb.debian.org jessie InRelease
Get:2 http://deb.debian.org jessie-updates InRelease [145 kB]
Get:3 http://deb.debian.org jessie Release.gpg [2420 B]
Get:4 http://deb.debian.org jessie Release [148 kB]
Get:5 http://security.debian.org jessie/updates/main amd64 Packages [624 kB]
Get:6 http://deb.debian.org jessie-updates/main amd64 Packages [23.0 kB]
Get:7 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Fetched 10.1 MB in 6s (1541 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libapt-inst1.5
The following NEW packages will be installed:
apt-utils libapt-inst1.5
0 upgraded, 2 newly installed, 0 to remove and 24 not upgraded.
Need to get 537 kB of archives.
After this operation, 1333 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian/ jessie/main libapt-inst1.5 amd64 1.0.9.8.4 [169 kB]
Get:2 http://deb.debian.org/debian/ jessie/main apt-utils amd64 1.0.9.8.4 [368 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 537 kB in 0s (557 kB/s)
Selecting previously unselected package libapt-inst1.5:amd64.
(Reading database ... 21676 files and directories currently installed.)
Preparing to unpack .../libapt-inst1.5_1.0.9.8.4_amd64.deb ...
Unpacking libapt-inst1.5:amd64 (1.0.9.8.4) ...
Selecting previously unselected package apt-utils.
Preparing to unpack .../apt-utils_1.0.9.8.4_amd64.deb ...
Unpacking apt-utils (1.0.9.8.4) ...
Setting up libapt-inst1.5:amd64 (1.0.9.8.4) ...
Setting up apt-utils (1.0.9.8.4) ...
Processing triggers for libc-bin (2.19-18+deb8u10) ...
Reading package lists...
Building dependency tree...
Reading state information...
curl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 24 not upgraded.
Removing intermediate container 6e6565ff01bd
---> f65e29c6a6b9
Step 6/12 : RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
---> Running in f5764ba56103
Detected operating system as debian/8.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing debian-archive-keyring which is needed for installing
apt-transport-https on many Debian systems.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/github_git-lfs.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.
The repository is setup! You can now install packages.
Removing intermediate container f5764ba56103
---> a4e64687ab73
Was verursacht dies und wie kann ich es beheben? Danke dir!
Nachdem ich über das Internet gesucht habe, habe ich einige Alternativen gefunden, die es wert sind, erwähnt zu werden, anstatt jedes Mal
DEBIAN_FRONTEND=noninteractive
vorapt-get install -y {your-pkgs}
:Alternative 1: ARG DEBIAN_FRONTEND = nicht interaktiv
Lösungsmerkmale:
ARG
Die Direktive wird nur während des Builds festgelegtdocker build --build-arg DEBIAN_FRONTEND=newt
Beispiel:
Alternative 2: On-the-Fly
Es ist die Lösung von Leo K.
Lösungsmerkmale:
RUN
und wirkt sich nicht auf andere Richtlinien aus.Beispiel:
Alternative 3: ENV DEBIAN_FRONTEND = nicht interaktiv
Die Einstellung
ENV DEBIAN_FRONTEND noninteractive
wäre ebenfalls eine Alternative, wird jedoch dringend davon abgeraten.Eine andere Möglichkeit wäre, beim Betteln zu setzen und am Ende der Docker-Datei zu deaktivieren.
Lösungsmerkmale:
ENV
Die Direktive behält die Umgebungsvariable nach dem Build bei (nicht empfohlen)ENV
, wird es von allen Bildern und Containern geerbt, die aus dem Bild erstellt wurden, wodurch sich ihr Verhalten effektiv ändert. (Wie in [ 1 ] erwähnt) Benutzer, die diese Images verwenden, haben Probleme bei der interaktiven Installation von Software, da Installationsprogramme keine Dialogfelder anzeigen.DEBIAN_FRONTEND=newt
(siehe [ 2 ], daher muss es am Ende der Datei festgelegt werden.Beispiel:
Alternative 4: RUN-Export DEBIAN_FRONTEND = nicht interaktiv
Lösungsmerkmale:
RUN
und wirkt sich nicht auf andere Richtlinien aus.Beispiel:
Mehr zu lesen (Referenzen)
quelle