Ich verwende Docker Desktop Community 2.0.3. Ich habe die offiziellen Nginx- und Apache-HTTP-Servercontainer von Docker Hub (hub.docker.com) ausgeführt. Die Container-Images basieren auf Debian 9. Dann habe ich versucht, die Standardsystemdienstprogramme von Debian mit Tasksel zu installieren. Ich habe ein Terminal im Container geöffnet mit:
docker exec -ti container_id bash
Ich habe versucht, die Taskel-Installation auszuführen
# tasksel install standard
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Installing packages
-------------------
..100%
Die Probleme sind:
- Es öffnet nicht die Taskel-TUI (Text User Interface), wie im Screenshot zu sehen.
- Ich erhalte die oben genannten Fehler und die Installation wird nicht abgeschlossen.
Docker Desktop ist auf macOS 10.12 installiert
Antwort1
Um zu verwenden tasksel
, müssen Sie dialog
; in Ihrem Container installieren:
apt update && apt install -y dialog tasksel
Dann
tasksel install standard
wird mit der üblichen Schnittstelle funktionieren.
Sie müssen die TERM
Variable nicht übergeben.
Viele der Standarddienstprogramme sind in einem Container nicht sehr nützlich. Wenn ich dies jedoch tun würde, würde ich aptitude
stattdessen Folgendes verwenden tasksel
:
apt update && apt install -y aptitude && \
aptitude install -y ~pstandard ~prequired ~pimportant
Antwort2
Es stellte sich heraus, dass ncurses diesen Befehl erfordert: https://stackoverflow.com/a/38774123/3341782 Ich bin nicht sicher, ob es eine bessere Lösung gibt.