我想在 docker 容器内运行 Chromium 浏览器。所以对我来说第一步就是设法在容器内启动 startx 。 现在我设法提供的服务就是: 开始x
现在,当我使用基础 ubuntu 启动虚拟机时,它会打开 startx GUI,我可以操作它(使用它的 gui、打开浏览器等)。 之后,我在其中添加了带有 chromium-browser --kiosk 的 .xinitrc 以在 kiosk 模式下打开浏览器,在 /etc/X11/ 中添加了 Xwrapper.config 并导出 DISPLAY=:0 并且工作得很好。因此,想要的行为是当我启动虚拟机时,我想直接打开 chromium 浏览器,而不在连接到虚拟机的屏幕上进行任何操作。
我对 systemd 服务和 .xinitrc 所做的与带有基本 ubuntu 映像的 docker 容器的操作相同吗?
目前我尝试的方法如下: Dockerfile 看起来像这样:
FROM ubuntu:latest
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
xfce4-session \
xfce4-goodies \
xinit \
snap \
snapd \
chromium-browser
# Set the default command to startx
CMD ["startx"]
所以当我启动容器时:
docker run --rm --privileged -it --net=host my-chromium-image
容器运行,GUI 启动并卡住并冻结,我无能为力。