DigitalOcean, Docker, Dokku: Installing Firefox inside a container

I have an application which needs to use a headed browser periodically.

I want to Host it using Dokku.

  • How to gracefully shut down a server running in docker
  • Building and running a docker image for a Go executable
  • Eclipse IDE within docker
  • sha256sum error while building nvidia-docker on ppc64le
  • My websites running in docker containers, how to implement virtual host?
  • kubernetes volume hostPath
  • How can I install this into my DO container?

    When I run:

    dokku run MY_APP apt-get install firefox
    

    I get:
    E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/libsystemd-daemon0_204-5ubuntu20.9_amd64.deb 404 Not Found [IP: 91.189.91.15 80]
    .
    .
    .
    E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/u/ubufox/xul-ext-ubufox_2.9-0ubuntu0.14.04.1_all.deb 404 Not Found [IP: 91.189.91.15 80]

    After which running:

    dokku run MY_APP firefox
    

    returns:
    FATA[0000] Error response from daemon: Cannot start container … exec: “firefox”: executable file not found in $PATH

    I am aware that PhatomJS is a better solution but some third party gem I am using are dependant on a headed firefox browser.

  • Creating Marklogic docker instance in Ubuntu 16.04 exposing the ports
  • netcat for MySQL connection forwarding
  • Docker running Jupyter Notebook - `'no $DISPLAY environment variable'?
  • “docker-compose build” is showing me help text when I specify a file
  • Development workflow for server and client using Docker Compose?
  • Not able to start a pod in minikube by pulling image from external private registry
  • One Solution collect form web for “DigitalOcean, Docker, Dokku: Installing Firefox inside a container”

    From the error message you are getting when installing Firefox, it seems like your apt cache inside the Docker container is out-of-date. Running apt-get update first should resolve the problem.

    Though to run Firefox headless, you’ll need another step. You’ll need to prepend your command with xvfb-run which is part of the xvfb package. It will allow you to run commands in a virtual X server environment.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.