私はDocker Desktop Community 2.0.3を実行しています。私はdockerハブ(hub.docker.com)で公式のnginxとApache HTTPサーバーコンテナを実行しています。コンテナイメージはDebian 9に基づいています。その後、taskelを使用してDebian標準システムユーティリティをインストールしようとしました。次のコマンドを使用してコンテナから端末を開きました。
docker exec -ti container_id bash
taskel installを実行してみました。
# 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%
問題は次のとおりです。
- スクリーンショットに示すように、ワークセットテキストユーザーインターフェース(TUI)は開かれません。
- 上記のエラーが発生しますが、インストールは完了しません。
macOS 10.12 にインストールされた Docker Desktop
答え1
を使用するにはコンテナにインストールするtasksel
必要があります。dialog
apt update && apt install -y dialog tasksel
それから
tasksel install standard
一般的なインターフェイスを使用できます。
変数を渡す必要はありませんTERM
。
多くの標準ユーティリティはコンテナであまり使用されていませんが、これを行うにはaptitude
代わりに次のものを使用しますtasksel
。
apt update && apt install -y aptitude && \
aptitude install -y ~pstandard ~prequired ~pimportant
答え2
ncursesには次のコマンドが必要であることがわかりました。 https://stackoverflow.com/a/38774123/3341782 より良い解決策があるかどうかはわかりません。