diff --git a/contrib/docker/examples/README.md b/contrib/docker/examples/README.md
index 3ca056ae81c35bdaf85bf3e6c987edc34c507fdd..24fcaa366e6177d8f2cfcf8c119c0986b3a20ab6 100644
--- a/contrib/docker/examples/README.md
+++ b/contrib/docker/examples/README.md
@@ -7,6 +7,9 @@ get [Review Board](https://www.reviewboard.org) up and running fast;
 * `docker-compose.mysql.yaml`: A configuration using MySQL for the database.
 * `docker-compose.postgres.yaml`: A configuration using Postgres for the
   database.
+* `docker-compose.docconverter.yaml`: A configuration for launching Review Board
+  with Power Pack's Doc Converter service for
+  [document review](https://www.reviewboard.org/docs/powerpack/latest/powerpack/manual/doc-review/).
 
 To get started, see the instructions in these files, or keep reading.
 
diff --git a/contrib/docker/examples/docker-compose.docconverter.yaml b/contrib/docker/examples/docker-compose.docconverter.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f3cc67386aa3062c5b293f7fe8e52019079930ff
--- /dev/null
+++ b/contrib/docker/examples/docker-compose.docconverter.yaml
@@ -0,0 +1,269 @@
+# Example docker-compose configuration for Review Board with Doc Converter.
+#
+# Doc Converter is the document conversion service needed for Power Pack's
+# document review feature. This example shows how to launch Review Board
+# along with a database (MySQL), web server, memcached, one Doc Converter
+# instance, and a message broker (RabbitMQ).
+#
+# You may instead want to launch Doc Converter and/or a message broker
+# separately. See Power Pack's documentation for full details on all the
+# different ways you can set up Doc Converter:
+#
+# https://www.reviewboard.org/docs/powerpack/latest/powerpack/manual/doc-review/
+#
+# Please note, this file is meant to be used as an example! You will need
+# to change some settings first. See the instructions.
+#
+#
+# Instructions
+# ============
+#
+# 1. Copy the following to a new directory:
+#
+#    * docker-compose.yaml (based on this file)
+#    * nginx_templates
+#
+# 2. Change the hostname below to a fully-qualified domain name you'll be
+#    able to use for the server. Search for "localhost" for the default.
+#
+#    See DOMAIN and NGINX_HOST below.
+#
+#    To temporarily test a hostname, you can modify /etc/hosts on Linux
+#    or macOS and alias it to your IP address.
+#
+#    NOTE: If you change this later, you will need to edit the sitedir
+#          volume's conf/settings_local.py to include the new hostname in
+#          ALLOWED_HOSTS, and change the hostname in Review Board's
+#          Admin UI -> General Settings page.
+#
+# 3. Change the database passwords below to something secure.
+#
+#    See MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD, and DATABASE_PASSWORD.
+#
+# 4. Change the company name for your server.
+#
+#    See COMPANY below.
+#
+# 5. Change Doc Converter and RabbitMQ variables below to something secure.
+#
+#    See RABBITMQ_DEFAULT_PASS, RABBITMQ_ERLANG_COOKIE, and
+#    BROKER_URL.
+#
+# 6. Go through this file and search for "CHANGEME" for other settings you
+#    may want to change.
+#
+# 7. Run: docker-compose up
+#
+# 8. Access http://<hostname>/
+#
+# 9. Enable the Document Review feature in the Power Pack configuration page
+#    and set the broker URL there to the same BROKER_URL used here.
+#
+#
+# Data Storage
+# ============
+#
+# This example configuration will create two directories for storage:
+#
+# db_data/
+#     The MySQL database contents.
+#
+#     This CANNOT be shared across multiple MySQL database servers.
+#
+# sitedir/
+#     Review Board site directory content (static media files, data, and
+#     configuration).
+#
+#     This CAN be shared across multiple Review Board server instances, and
+#     Nginx instances.
+#
+#
+# Production Use
+# ==============
+#
+# As this is only a sample configuration, you'll likely want to make other
+# changes for production use, such as:
+#
+# 1. Setting up a load balancer with SSL enabled.
+#
+# 2. Separating out the database and memcached server for other Review Board
+#    instances to use.
+#
+# 3. Making sure only port 80 is accessible on the network.
+#
+# These are all beyond the scope of this example configuration.
+#
+# You should also go through this file, read the comments, and change any
+# configuration needed for your install.
+
+version: '3.7'
+
+
+services:
+  # The backend MySQL database server.
+  #
+  # This is accessed directly by Review Board.
+  #
+  # In production, this should be shared across all Review Board instances.
+  db:
+    image: mysql:8
+    environment:
+      # The name of the MySQL database storing Review Board content.
+      - MYSQL_DATABASE=reviewboard
+
+      # The MySQL username for Review Board.
+      - MYSQL_USER=reviewboard
+
+      # The MySQL password for Review Board.
+      #
+      # CHANGEME: Use a strong password!
+      - MYSQL_PASSWORD=reviewboard123
+
+      # The root MySQL password.
+      #
+      # CHANGEME: Use a strong password!
+      - MYSQL_ROOT_PASSWORD=admin123
+
+    volumes:
+      - db_data:/var/lib/mysql
+
+    restart: 'on-failure'
+
+
+  # The backend memory caching server.
+  #
+  # This is accessed directly by Review Board.
+  #
+  # In production, this should be shared across all Review Board instances,
+  # and should be configured with at least 2GB of RAM.
+  memcached:
+    image: memcached:alpine
+    restart: 'on-failure'
+
+    entrypoint:
+      - memcached
+
+      # The amount of RAM available for memcached.
+      #
+      # CHANGEME: Set this to a suitable amount for your server. We recommend
+      #           at least 2GB in production (2048).
+      - -m 128
+
+
+  # The backend Review Board server.
+  #
+  # This should not be accessed directly. Instead, please access the frontend
+  # nginx server.
+  reviewboard:
+    image: beanbag/reviewboard:7.0
+    depends_on:
+      - db
+      - memcached
+
+    environment:
+      - DATABASE_TYPE=mysql
+
+      # The name of your company.
+      #
+      # CHANGEME: You should use your actual name here. It's used for
+      #           internal state and your in-app support page.
+      - COMPANY=Docker Compose Test
+
+      # CHANGEME: Set this to the database username above.
+      - DATABASE_USERNAME=reviewboard
+
+      # CHANGEME: Set this to the database password above.
+      - DATABASE_PASSWORD=reviewboard123
+
+      # CHANGEME: Set this to your accessible domain name.
+      - DOMAIN=localhost
+
+    volumes:
+      - sitedir:/site
+
+  # The frontend nginx web server.
+  #
+  # This serves up static media (CSS, JavaScript, and images), and forwards
+  # all other requests to the Review Board backend server.
+  #
+  # This is the server you will access for Review Board.
+  nginx:
+    image: nginx:alpine
+    restart: always
+    depends_on:
+      - reviewboard
+
+    environment:
+      # CHANGEME: Set this to your accessible domain name above.
+      - NGINX_HOST=localhost
+
+      # The public port used to access this instance.
+      #
+      # If changed, you will need to change 'ports' below to match.
+      - NGINX_PORT=80
+
+    ports:
+      - 80:80
+
+    volumes:
+      - sitedir:/var/www/reviewboard
+      - ./nginx_templates:/etc/nginx/templates
+
+  # The message broker used for communication between Doc Converter and
+  # Review Board. RabbitMQ is recommended, but any Celery compatible message
+  # broker will work.
+  rabbitmq:
+    image: rabbitmq:3-management
+    restart: always
+
+    # The hostname for the RabbitMQ container.
+    #
+    # This will be used in the broker URL.
+    hostname: rabbitmq
+    environment:
+      # The RabbitMQ default virtual host to use for Doc Converter.
+      - RABBITMQ_DEFAULT_VHOST=docconverter-vhost
+
+      # The RabbitMQ default user to use for Doc Converter.
+      - RABBITMQ_DEFAULT_USER=docconverter
+
+      # The RabbitMQ default user password to use for Doc Converter.
+      #
+      # CHANGEME: Use a strong password!
+      - RABBITMQ_DEFAULT_PASS=pass123
+
+      # The RabbitMQ Erlang cookie to use for Doc Converter.
+      #
+      # CHANGEME: Use a secret string of up to 255 alphanumeric characters.
+      - RABBITMQ_ERLANG_COOKIE=somecookie
+    ports:
+      # The port for connecting to the RabbitMQ service.
+      - 5672:5672
+
+      # The port for RabbitMQ's management plugin.
+      - 15672:15672
+    healthcheck:
+      test: ['CMD', 'rabbitmqctl', 'status']
+      interval: 5s
+      timeout: 20s
+      retries: 5
+
+  # The Doc Converter service.
+  docconverter:
+    image: beanbag/docconverter:latest
+    restart: always
+    depends_on:
+      rabbitmq:
+        condition: service_healthy
+    environment:
+      # The broker URL for connecting to the message broker.
+      #
+      # CHANGEME: Change this according to your RabbitMQ and Docker variables
+      #           above. The URL should be in the following format:
+      #           amqp://[user]:[password]@[hostname]:[port]/[vhost]
+      - BROKER_URL=amqp://docconverter:pass123@rabbitmq:5672/docconverter-vhost
+
+
+volumes:
+  db_data:
+  sitedir:
