ubuntu docker 容器中的无头铬

Headless chromium in ubuntu docker container

提问人:maxwellpwang 提问时间:3/7/2021 更新时间:11/16/2023 访问量:14663

问:

我正在尝试在 ubuntu docker 映像中运行 chromium 的无头实例,但我一直收到错误 该系统没有显示器,也没有音频输入或输出

[0307/003516.533150:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

无论如何都可以禁用 dbus,因为似乎 docker 不支持它 这是我的 Dockerfile 中的行

FROM arm64v8/ubuntu:bionic
RUN apt install -y chromium-browser
RUN apt install -y chromium-drivers

这是我使用的发射线

chromium-browser --no-sandbox --headless --autoplay-policy=no-user-gesture-required --no-first-run --disable-gpu --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --disable-sync index.html
docker ubuntu chromium google-chrome-headless

评论

1赞 thisismydesign 6/24/2021
chromium-browser软件包不再可用,我不确定如何再安装 chromium。apt

答:

12赞 jordanvrtanoski 3/7/2021 #1

要获得真正的无头铬,您需要将选项添加到您的生产线中,如下所示:--remote-debugging-port

chromium-browser --no-sandbox --headless --autoplay-policy=no-user-gesture-required --no-first-run --disable-gpu --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --disable-sync --remote-debugging-port=9222 index.html

启动后,可以使用调试端口连接和控制浏览器,如下所述

评论

1赞 informaticienzero 12/10/2021
你真的为我节省了很多时间,谢谢你善良的美洲狮!
9赞 Pavel A. 2/17/2023
不适合我:(Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: Connection refused
5赞 Chris Stryczynski 5/19/2023
这如何解决问题?在我的情况下,答案似乎并不能解决DBUS错误。
0赞 user1689987 11/16/2023
如果您在 Apple Silicon 上运行,@ChrisStryczynski在下面查看我的答案
1赞 user1689987 11/16/2023 #2

如果您在本地使用 Apple Silicon 运行,请在 Docker Desktop 设置中选择“Use Rosetta for x86/amd64 emulation on Apple Silicon”:enter image description here

否则,您可以尝试添加/运行 dbus:

apk add dbus
mkdir -p /run/dbus
dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address
or
dbus-daemon --system