DockerでFirefox 52+を使用しているときに、WebRTCのgetUserMedia
関数が異常に動作しています。それを再現する手順は次のとおりです。DockerのFirefoxのgetUserMediaが動作しない
1)ドッカーでセレンハブを実行します。
docker run --rm --name selenium-hub -p 4444:4444 selenium/hub:3.4.0
2)ハブにFirefoxブラウザを登録します。
docker run --rm --link selenium-hub:hub -p 5555:5555 -p 5900:5900 selenium/node-firefox-debug:3.4.0
注1を:このコマンドは、VNCを使用して(コンテナ内の)ブラウザに接続したいので、node-firefoxイメージのデバッグバージョンを使用しています。
NOTE 2:このバージョン(3.4.0)はFirefox 53を使用しています。この問題はFirefox 52(つまり、 (Linuxの場合はURL:vnc://(Linuxの場合:vnc://))を使用してブラウザに接続します。 127.0.0.1:5900、パスワード:secret)
4)ドッキングされたブラウザで偽のメディアを使用するように強制します。これは、Firefox(タブabout:config
)の事前設定で設定にtrue
に設定キーmedia.navigator.streams.fake
を行うことができます。
5)ドッカーにFirefoxでgetUserMedia samples pageを開きます。例えば、Basic getUserMedia demoが正常に動作します:
mediaConstraints
にオーディオフラグをfalseに設定されているので、私はこのデモが動作している確認:
var constraints = window.constraints = {
audio: false,
video: true
};
それにも関わらず、他のデモをオーディオフラグをtrueに設定しても機能しなくなり、getUserMedia
機能が停止します。
この動作はDockerでのみ再現できます。つまり、ホストで直接実行されているFirefoxのバージョンは正常に動作します。ここには何らかのバグがあるようですが、パズルのどの部分には不明です。
ここで問題はありますか?ドッカー? Firefox?