docker | 不明な環境 `bash` | サブプロセス /usr/bin/dpkg がエラーコードを返しました (1)

docker | 不明な環境 `bash` | サブプロセス /usr/bin/dpkg がエラーコードを返しました (1)

私の目標は、nordvpn をインストールして接続した状態で Docker コンテナを実行することです。

Dockerコンテナを起動する

sudo docker pull ubuntu:latest
sudo docker run -it ubuntu bash
// now im in the docker container
apt install update
apt install wget
wget {{nordvpn_link.deb}}
dpkg -i {{nordvpn_link.deb}}
// some errors about dependencies after above command so ...
apt install -f
// then
apt install nordvpn

最初の大きなエラー

root@f706a3f4012f:/home# apt install nordvpn
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nordvpn is already the newest version (3.6.0-2).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 
Setting up nordvpn (3.6.0-2) ...
[ERROR] Unknown environment `bash'
dpkg: error processing package nordvpn (--configure):
installed nordvpn package post-installation script subprocess returned error exit status 255
Errors were encountered while processing:
nordvpn
E: Sub-process /usr/bin/dpkg returned an error code (1)

私は読むここ次のコマンドを実行します

dpkg --configure -a
// errors
Setting up nordvpn (3.6.0-2) ...
[ERROR] Unknown environment `bash'
dpkg: error processing package nordvpn (--configure):
installed nordvpn package post-installation script subprocess returned error exit status 255
Errors were encountered while processing:
nordvpn

通常の Ubuntu デスクトップ インストールではプロセスがスムーズに進んだのに、なぜ Docker コンテナーでこのようなことが起こるのかはわかりません。

答え1

まだお分かりかどうか分かりませんが、postinstall スクリプトは systemd/sysvinit スクリプトを構成するためのものです。docker コンテナ内で実行しているため、これらはどちらも存在しません。

興味がある方のために説明すると、スクリプトは PID 1 のプロセスを調べて、systemd と sysvinit のどちらを実行しているかを判断します。ただし、これは docker 内部にあるため、PID 1 は docker に渡したコマンド (この場合は bash) に属します。

アプリケーションはすでにインストールされているため、このエラーは無視しても問題ありません。

関連情報