Я пытаюсь настроить образ Docker (мой Dockerfile доступен здесь, извините за французский README: https://framagit.org/Gwendal/firefox-icedtea-docker) со старой версией Firefox и старой версией Java для запуска старого Java-апплета взапустить VPN. Мой образ работает и успешно позволяет мне запускать апплет Java в Firefox.
К сожалению, указанный апплет пытается выполнить следующую команду в контейнере (я просто удалил --config
часть команды, поскольку здесь это не имеет значения):
INFO: launching '/usr/bin/pkexec sh -c /usr/sbin/openvpn --config ...'
Затем апплет завершает работу без предупреждения с ошибкой. Во время исследования я попытался запустить команду с pkexec
с тем же образом Docker.и это дает мне такой результат:
$ sudo docker-compose run firefox pkexec /firefox/firefox-sdk/bin/firefox-bin -new-instance
**
ERROR:pkexec.c:719:main: assertion failed: (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) > 0)
Но я совсем не знаю polkit и не могу понять эту ошибку.
РЕДАКТИРОВАТЬ: более минимальный способВоспроизвести проблему с этим Dockerfile:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -y policykit-1
И затем запустить:
$ sudo docker build -t pkexec-test .
$ sudo docker run pkexec-test pkexec echo Hello
Что снова приводит к:
ERROR:pkexec.c:719:main: assertion failed: (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) > 0)
Должен ли я сделать вывод, что pkexec
не может работать в контейнере Docker?Или есть какой-нибудь способ заставить эту команду работать?
Sidenote : У меня нет никакого контроля над Java-апплетом, который я пытаюсь запустить, он ужасен и очень устарелпроприетарный черный ящик, который я должен использовать на работе, для которого у меня нет доступа к исходному коду, и который я должен использовать как есть.