• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Review Bot 4.x
    2. Version 4.x
    3. Version 3.0
    4. Version 2.0
    5. Version 1.0
    6. Installation
    7. Review Bot Docker Images
  • Home
  • Installation
  • Manually Installing Review Bot
  • Review Bot Docker Images
  • Upgrading Review Bot
  • Configuring Review Bot
  • Review Bot Tools
  • Cargo Tool
  • Checkstyle
  • Clang Static Analyzer
  • Cppcheck
  • Cpplint
  • Doc8
  • FBInfer
  • Flake8
  • Go Fmt
  • Go Tool
  • JSHint
  • PMD
  • Pycodestyle
  • Pydocstyle
  • Pyflakes
  • RuboCop
  • Rust Fmt
  • Secret Scanner
  • ShellCheck
  • Module and Class Reference
  • reviewbot.tools.base
  • reviewbot.tools.base.mixins
  • reviewbot.tools.base.registry
  • reviewbot.tools.base.tool
  • reviewbot.testing.testcases
  • reviewbot.testing.utils
  • reviewbot.tools.testing
  • reviewbot.tools.testing.decorators
  • reviewbot.tools.testing.testcases
  • reviewbot.processing.review
  • reviewbot.utils.api
  • reviewbot.utils.filesystem
  • reviewbot.utils.log
  • reviewbot.utils.process
  • reviewbot.utils.text
  • reviewbot.celery
  • reviewbot.config
  • reviewbot.deprecation
  • reviewbot.errors
  • reviewbot.repositories
  • reviewbot.tasks
  • reviewbot.tools.cargotool
  • reviewbot.tools.checkstyle
  • reviewbot.tools.clang
  • reviewbot.tools.cppcheck
  • reviewbot.tools.cpplint
  • reviewbot.tools.doc8
  • reviewbot.tools.fbinfer
  • reviewbot.tools.flake8
  • reviewbot.tools.gofmt
  • reviewbot.tools.gotool
  • reviewbot.tools.jshint
  • reviewbot.tools.pmd
  • reviewbot.tools.pycodestyle
  • reviewbot.tools.pydocstyle
  • reviewbot.tools.pyflakes
  • reviewbot.tools.rbsecretscanner
  • reviewbot.tools.rubocop
  • reviewbot.tools.rustfmt
  • reviewbot.tools.shellcheck
  • General Index
  • Python Module Index
  • Release Notes
  • Review Bot Docker Images¶

    New in version 3.0.

    Review Bot can be installed through our official Docker images, helping you quickly get your infrastructure set up with minimal effort.

    Each release ships with a set of pre-made tool pack images that check certain languages. You can also create your own custom Review Bot images that contain just the tools you need. This is all covered below.

    Getting Started¶

    We’ll walk you through the basics of setting up Review Bot on Docker in two different ways:

    1. Launching the Review Bot image itself using docker run.

    2. Launching the image along with a database, web server, and memcached using docker-compose.

    You’ll also see how you can build a Docker image for just the tools you need.

    Before You Begin¶

    Plan Your Infrastructure¶

    Review Bot requires a compatible message broker.

    RabbitMQ is most commonly used, and is available through the rabbitmq Docker image. This is what we’ll use for this guide.

    Choose a Version and Tool Packs¶

    Our Docker images are available in the following forms:

    • beanbag/reviewbot-pack:latest – The latest stable release of Review Bot for a given language/tool pack.

    • beanbag/reviewbot-pack:X – The latest stable release in a major version series (e.g., 3).

    • beanbag/reviewbot-pack:X.Y – The latest stable release in a major.minor version series (e.g., 3.0).

    • beanbag/reviewbot-pack:X.Y.Z – A specific release of Review Bot (e.g., 3.0.1).

    Note

    We recommend using a {X.Y}-versioned image, rather than using latest, to help avoid unexpected changes with future versions. You’ll still benefit from bug fixes.

    You can choose any of the following tool pack images:

    • beanbag/reviewbot-c

      • Clang Static Analyzer

      • Cppcheck

      • Cpplint

    • beanbag/reviewbot-go

      • Go Fmt

      • Go Tool

    • beanbag/reviewbot-java

      • Checkstyle

    • beanbag/reviewbot-javascript

      • JSHint

    • beanbag/reviewbot-python

      • Doc8

      • Flake8

      • Pycodestyle

      • Pydocstyle

      • Pyflakes

    • beanbag/reviewbot-ruby

      • RuboCop

    • beanbag/reviewbot-rust

      • Cargo Tool

      • Rust Fmt

    • beanbag/reviewbot-shell

      • ShellCheck

    • beanbag/reviewbot-fbinfer

      • FBInfer

    • beanbag/reviewbot-pmd

      • PMD

    Using Docker Run¶

    First, make sure you have RabbitMQ (or another compatible message broker) configured and ready for Review Bot. You can use an existing Docker image or install a broker manually.

    To start a new container, run:

    $ docker pull beanbag/reviewbot-<pack>:X.Y.Z
    $ docker run -P \
          --name <name> \
          -v <local_path>:/config \
          -v <local_path>:/repos \
          -e BROKER_URL=<broker URL> \
          beanbag/reviewbot-<pack>:X.Y.Z
    

    For example:

    $ docker pull beanbag/reviewbot-python:3.0
    $ docker run -P \
          --name <name> \
          -v /etc/reviewbot/config:/config \
          -v /var/lib/reviewbot/repos:/repos \
          -e BROKER_URL=amqp://reviewbot:reviewbot123@rabbitmq/reviewbot \
          beanbag/reviewbot-python:3.0
    

    We’ll go over the settings later.

    Using Docker Compose¶

    docker-compose can help you define and launch all the services needed for your Review Bot deployment.

    A simple docker-compose.yaml for launching RabbitMQ and two Review Bot workers (one for Python, one for Go) might look like:

    docker-compose.yaml¶
    version: '3.7'
    
    services:
      rabbitmq:
        image: rabbitmq:3-management
        restart: always
        hostname: rabbitmq
        environment:
          - RABBITMQ_DEFAULT_VHOST=reviewbot
          - RABBITMQ_DEFAULT_USER=reviewbot
          - RABBITMQ_DEFAULT_PASS=reviewbot123
          - RABBITMQ_ERLANG_COOKIE=secret-dont-tell
        volumes:
          - /var/lib/reviewbot/rabbitmq/data:/var/lib/rabbitmq/
          - /var/log/reviewbot/rabbitmq:/var/log/rabbitmq
        ports:
          - 15672:15672
          - 5672:5672
        healthcheck:
          test: ['CMD', 'rabbitmqctl', 'status']
          interval: 5s
          timeout: 20s
          retries: 5
    
      reviewbot-go:
        image: beanbag/reviewbot-go:3.0
        restart: always
        depends_on:
          rabbitmq:
            condition: service_healthy
        environment:
          - BROKER_URL=amqp://reviewbot:reviewbot123@rabbitmq/reviewbot
        volumes:
          - /etc/reviewbot/config:/config
          - /var/lib/reviewbot/repos:/repos
    
    
      reviewbot-python:
        image: beanbag/reviewbot-python:3.0
        restart: always
        depends_on:
          rabbitmq:
            condition: service_healthy
        environment:
          - BROKER_URL=amqp://reviewbot:reviewbot123@rabbitmq/reviewbot
        volumes:
          - /etc/reviewbot/config:/config
          - /var/lib/reviewbot/repos:/repos
    

    You’ll want to tailor this to your configuration and security requirements. This is purely for demonstrative purposes.

    To bring up the environment, run:

    $ docker-compose up
    

    You can then enable Review Bot in Review Board and point it to the broker URL for your server.

    Note

    Make sure to use the publicly-resolvable domain and exposed RabbitMQ port for the server running this Docker environment)! The internal broker URLs shown above are only valid within the Docker environment.

    Configuration¶

    Repository Volumes¶

    There are two volume mounts available: /config and /repos.

    These are only required if using tools that require full repository access.

    /config is a directory that may contain any of the following files:

    • repositories.json – A list of repositories Review Bot can pull from

    • servers.json – A list of Review Board servers that Review Bot can query for available repositories

    Broker Configuration¶

    The URL for the broker must be provided by passing BROKER_URL.

    For RabbitMQ, this is in the form of: amqp://<username>:<password>@<host>/<queue-vhost>.

    See Broker URL for more information.

    Custom Review Bot Images¶

    You can build your own custom Review Bot images featuring just the tools you need to install:

    1. Determine the tools you want to use. The following tool IDs can be specified:

      • checkstyle

      • clang

      • cppcheck

      • cpplint

      • doc8

      • fbinfer

      • flake8

      • gofmt

      • gotool

      • jshint

      • pmd

      • pycodestyle

      • pydocstyle

      • pyflakes

      • rubocop

      • rustfmt

      • shellcheck

      Note

      Built-in tools will always be installed. Currently, that just includes Secret Scanner.

    2. Create a Dockerfile containing the following:

      # Specify your tool IDs from above here:
      ARG TOOLS="tool1 tool2 tool3"
      
      FROM beanbag/reviewbot:<version>
      
    3. Build the image:

      $ docker build -t my-reviewbot .
      

      See the docker build documentation for more information on this command.

    4. Launch a container from your new image:

      $ docker run \
          -P \
          --name ... \
          -v ... \
          -e ... \
          my-reviewbot
      

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Getting Started
      • Before You Begin
        • Plan Your Infrastructure
        • Choose a Version and Tool Packs
      • Using Docker Run
      • Using Docker Compose
    • Configuration
      • Repository Volumes
      • Broker Configuration
    • Custom Review Bot Images