• 
      

    Add official support for Docker.

    Review Request #11476 — Created Feb. 19, 2021 and submitted — Latest diff uploaded

    Information

    Review Board
    release-3.0.x

    Reviewers

    This introduces our first official support for a Review Board Docker
    image. This is carefully crafted to provide a full Review Board
    environment with all necessary packages and with configuration options
    that should meet the needs of our customers.

    Our Docker image is based on Ubuntu 20.04 LTS, which offers 10 years of
    security updates. It uses Gunicorn as the WSGI server, leveraging the
    new reviewboard.wsgi module, and supports MySQL/MariaDB or Postgres
    databases.

    The image also comes pre-installed with Power Pack and Review Bot
    extensions. Additional extensions can be installed by creating a new
    Dockerfile that inherits from ours, installing any extensions or other
    packages needed by the customer. This helps give consumers the control
    they need without requiring that they fork ours.

    Documentation has been added to the Admin Guide on using Docker for
    installation. This covers basic usage via docker run, more
    comprehensive architectures using docker-compose (which we include
    sample files for), launch-time configuration options, and how to extend
    the image to include other extensions.

    Currently, this Dockerfile is geared toward Review Board 3.0.21 support.
    Additional work will be done on the release-4.0.x branch to bring
    compatibility with Review Board 4.0 RC1 and Python 3.

    Built the Docker image and ran it. Hooked it up to Nginx and verified
    I had a working setup.

    Used both the MySQL and Postgres docker-compose.yaml files and deployed
    a whole infrastructure. Logged in, verified I could add repositories and
    post review requests.

    Built the docs. Checked for build errors, bad links, and spelling errors.

    Ran through the examples in the docs for building custom images with
    custom extensions, ensuring they worked as expected.

    Tested the options to the build.py for the Dockerfile, including
    uploading a build to our repository on Docker Hub
    (https://hub.docker.com/r/beanbag/reviewboard/)

    This will likely need a lot more real-world testing in real-world
    deployments.

    Commits

    Files