Xvfb & Docker - cannot open display

overlox picture overlox · Aug 22, 2015 · Viewed 19.3k times · Source

I need to run XVFB and docker with firefox but can't get them to work together

Here is my Dockerfile :

FROM abevoelker/ruby:latest # based on ubuntu
ENV TERM linux
RUN apt-get update && apt-get install -y .....

ENV DISPLAY :99

# Install Xvfb init script
ADD xvfb_init /etc/init.d/xvfb # default xvfb init.d
RUN chmod a+x /etc/init.d/xvfb

CMD ["firefox"]

The error message I get from Firefox is

 Error: cannot open display: :99

Answer

overlox picture overlox · Sep 14, 2015

I solved this by writing a startup script which will:

  1. start xvfb
  2. start firefox

Executing the script via CMD allows the proper sequence of commands to run on container startup.

Dockerfile

...
ENV DISPLAY :99

ADD run.sh /run.sh
RUN chmod a+x /run.sh

CMD /run.sh

run.sh

Xvfb :99 -screen 0 640x480x8 -nolisten tcp &
firefox