加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

google-chrome – 使用Xvfb的Docker中的无头Chrome

发布时间:2020-12-16 03:31:21 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Xvfb在Docker容器内运行Chrome无头.但是,虽然ps显示Chrome进程存在,但它没有到达我的测试网站.在Docker外部运行相同的命令是成功的. Xvfb :0 -screen 0 1024x768x24 DISPLAY=:0 google-chrome http://mytestpage.com 在Docker中,我收到以下消

我正在尝试使用Xvfb在Docker容器内运行Chrome无头.但是,虽然ps显示Chrome进程存在,但它没有到达我的测试网站.在Docker外部运行相同的命令是成功的.

Xvfb :0 -screen 0 1024x768x24 &
DISPLAY=:0 google-chrome http://mytestpage.com

在Docker中,我收到以下消息/错误:

Xlib:  extension "RANDR" missing on display ":0".
Xlib:  extension "RANDR" missing on display ":0".
[1180:1180:1120/051319:ERROR:desktop_window_tree_host_x11.cc(882)] Not implemented reached in virtual void views::DesktopWindowTreeHostX11::InitModalType(ui::ModalType)
[1223:1223:1120/051319:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
[1180:1201:1120/051319:ERROR:browser_gpu_channel_host_factory.cc(144)] Failed to create channel.

ps au | grep chrome

* root       128  0.1  0.4 533772 69868 ?        Sl+  06:02   0:00 /opt/google/chrome/chrome http://mytestpage.com
* root       139  0.0  0.2 342648 44016 ?        S+   06:02   0:00 /opt/google/chrome/chrome --type=zygote
* root       140  0.0  0.0  28132  3812 ?        S+   06:02   0:00 /opt/google/chrome/nacl_helper
* root       143  0.0  0.0 342648  8016 ?        S+   06:02   0:00 /opt/google/chrome/chrome --type=zygote
* root       181  0.0  0.3 523452 52392 ?        Sl+  06:02   0:00 /opt/google/chrome/chrome --type=gpu-process --channel=128.0.846512492 --supports-dual-gpus=false --gpu-driver-bug-workarounds=2,45,57 -$
* root       298  0.0  0.0  11120  1084 ?        S+   06:05   0:00 grep chrome

在Docker外部运行相同的命令(它工作的地方)我收到消息/错误:

Xlib:  extension "RANDR" missing on display ":1".
Xlib:  extension "RANDR" missing on display ":1".
[17750:17750:1119/215139:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
最佳答案
简单问题:运行Chrome时,为呼叫设置DISPLAY环境变量是不够的.还必须传递一个标志来禁用GPU,因为docker无法访问它并禁用沙盒.
我要导出显示:

export DISPLAY=:0
Xvfb :0 -screen 0 1024x768x24 &
google-chrome --disable-gpu --no-sandbox http://mytestpage.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读