Моя цель - запустить контейнер докеров с установленным и подключенным nordvpn.
Запустить контейнер докеров
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.
Не уверен, что вы еще поняли это или нет, но сценарий postinstall предназначен специально для настройки сценариев systemd / sysvinit. Поскольку вы работаете внутри контейнера докеров, у вас их нет.
Для тех, кому интересно, сценарий просматривает процесс с PID 1, чтобы решить, используете ли вы systemd или sysvinit. Однако, поскольку он находится внутри докера, PID 1 будет принадлежать любой команде, которую вы передали докеру (в данном случае bash).
Вы должны иметь возможность игнорировать ошибку, поскольку приложение уже установлено.