古いバージョンの Firefox と古いバージョンの Java を使用して、Docker イメージをセットアップしようとしています (私の Dockerfile はこちらから入手できます。古い Java アプレットを実行して VPN を開始します。イメージは機能し、Firefox で Java アプレットを正常に起動できます。
残念ながら、上記のアプレットはコンテナーで次のコマンドを実行しようとします (--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コンテナでは機能しないと結論付けるべきですか? または、このコマンドを機能させる方法はありますか?
補足: 私が実行しようとしている Java アプレットを制御することはできません。これは、ソース コードにアクセスできない、仕事で使用することになっている恐ろしい、非常に時代遅れの独自のブラック ボックスです。そのまま使用する必要があります。