web-dev-qa-db-ja.com

Xvfb&Docker-ディスプレイを開くことができません

XVFBとDockerをFirefoxで実行する必要がありますが、それらを連携させることができません

これが私の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"]

Firefoxからのエラーメッセージは

 Error: cannot open display: :99
12
overlox

私はこれを次のような起動スクリプトを書くことで解決しました:

  1. xvfbを開始します
  2. firefoxを起動します

CMDを介してスクリプトを実行すると、コンテナーの起動時にコマンドの適切なシーケンスを実行できます。

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
12
overlox