jlesage / docker-baseimage-gui

A minimal docker baseimage to ease creation of X graphical application containers
MIT License
1.2k stars 179 forks source link

Ubuntu 20.04 image does not work. X server not found #75

Closed chincheta closed 2 years ago

chincheta commented 2 years ago

I am just trying to run a chrome-dev instance.

Logs of the container:

[app] starting google-chrome...
Authorization required, but no authorization protocol specified
[34255:34255:1008/084134.580670:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY
[34255:34255:1008/084134.580698:ERROR:env.cc(255)] The platform failed to initialize.  Exiting.
[1008/084134.598036:ERROR:nacl_helper_linux.cc(315)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
[x11vnc] starting...
08/10/2022 08:41:34 passing arg to libvncserver: -rfbport
08/10/2022 08:41:34 passing arg to libvncserver: 5900
08/10/2022 08:41:34 passing arg to libvncserver: -rfbportv6
08/10/2022 08:41:34 passing arg to libvncserver: 5900
08/10/2022 08:41:34 passing arg to libvncserver: -desktop
08/10/2022 08:41:34 passing arg to libvncserver: google-chrome
08/10/2022 08:41:34 x11vnc version: 0.9.14 lastmod: 2015-11-14  pid: 34295
[xvfb] starting...
Authorization required, but no authorization protocol specified
08/10/2022 08:41:34 XOpenDisplay(":0") failed.
08/10/2022 08:41:34 Trying again with XAUTHLOCALHOSTNAME=localhost ...
Authorization required, but no authorization protocol specified

08/10/2022 08:41:34 ***************************************
08/10/2022 08:41:34 *** XOpenDisplay failed (:0)

*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

My docker file:


# Pull base image.
FROM jlesage/baseimage-gui:ubuntu-20.04

RUN apt-get update && apt-get install wget -y
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN apt-get install ./google-chrome-stable_current_amd64.deb -y

# Copy the start script.
COPY startapp.sh /startapp.sh

# Google Chrome dev port
EXPOSE 9222

# Port used to access the application's GUI via the web interface.
EXPOSE 5800

# Port used to access the application's GUI via the VNC protocol. Optional if no VNC client is used.
EXPOSE 5900

# Set the name of the application.
ENV APP_NAME="google-chrome"

startapp.sh:


#!/bin/sh
google-chrome --window-size=2560,1440 --no-sandbox --remote-debugging-port=9222

Any idea what's going on?

chincheta commented 2 years ago

I noticed the container does not work with networking "host" option.

jlesage commented 2 years ago

In this mode, you have to make sure there is not something else on you host that uses the same ports.