diff --git a/BUILD b/BUILD
index df9b631..a2152c9 100644
--- a/BUILD
+++ b/BUILD
@@ -38,7 +38,7 @@
     size = "medium",
     srcs = ["test/docker/run.sh"],
     args = [
-        "--events-plugin-jar",
+        "--plugin", plugin_name,
         "$(location :events)",
     ],
     data = [plugin_name] + glob(["test/**"]),
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index 748ccc4..179348f 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,13 +1,14 @@
 FROM gerritcodereview/gerrit:3.5.0.1-ubuntu20
 
+ENV GERRIT_SITE /var/gerrit
+COPY artifacts/plugins/ $GERRIT_SITE/plugins/
+
 USER root
 
-ENV GERRIT_SITE /var/gerrit
 RUN git config -f "$GERRIT_SITE/etc/gerrit.config" auth.type \
     DEVELOPMENT_BECOME_ANY_ACCOUNT
 
-COPY artifacts /tmp/
-RUN cp /tmp/events.jar "$GERRIT_SITE/plugins/events.jar"
+COPY artifacts/bin/ /tmp/
 RUN { [ -e /tmp/gerrit.war ] && cp /tmp/gerrit.war "$GERRIT_SITE/bin/gerrit.war" ; } || true
 
 USER gerrit
diff --git a/test/docker/run.sh b/test/docker/run.sh
index f897104..40aa32e 100755
--- a/test/docker/run.sh
+++ b/test/docker/run.sh
@@ -3,7 +3,8 @@
 readlink -f / &> /dev/null || readlink() { greadlink "$@" ; } # for MacOS
 MYDIR=$(dirname -- "$(readlink -f -- "$0")")
 ARTIFACTS=$MYDIR/gerrit/artifacts
-BAZEL_BUILT_JAR=$MYDIR/../../bazel-bin/events.jar
+PLUGIN=events
+BAZEL_BUILT_JAR=$MYDIR/../../bazel-bin/$PLUGIN.jar
 
 die() { echo -e "\nERROR: $@" ; kill $$ ; exit 1 ; } # error_message
 
@@ -24,7 +25,7 @@
     local prog=$(basename "$0")
     cat <<EOF
 Usage:
-    $prog [--events-plugin-jar|-t <FILE_PATH>] [--gerrit-war|-g <FILE_PATH>]
+    $prog [--plugin <plugin name> <JAR path>] [--gerrit-war|-g <FILE_PATH>]
 
     This tool runs the plugin functional tests in a Docker environment built
     from the gerritcodereview/gerrit base Docker image.
@@ -35,8 +36,10 @@
                                 not function correctly if it's a different
                                 MAJOR.MINOR version than the image version
                                 in test/docker/gerrit/Dockerfile.
-    --events-plugin-jar|-e      optional path to events plugin JAR file
-                                Defaults to $BAZEL_BUILT_JAR
+    --plugin                    optional plugin name and path to JAR file
+                                Defaults to '$PLUGIN' '$BAZEL_BUILT_JAR'
+                                Can be repeated to install additional
+                                plugins.
 
 EOF
 
@@ -59,16 +62,36 @@
         '/events/test/docker/run_tests/start.sh'
 }
 
+fetch_artifact() { # source_location output_path
+    if [[ "$1" =~ ^file://|^http://|^https:// ]] ; then
+        curl --silent --fail --netrc "$1" --output "$2" --create-dirs || die "unable to fetch $1"
+    else
+        cp -f "$1" "$2" || die "unable to copy $1"
+    fi
+}
+
+fetch_artifacts() {
+    local plugin_name
+    [ -n "$GERRIT_WAR" ] && fetch_artifact "$GERRIT_WAR" "$ARTIFACTS/bin/gerrit.war"
+    for plugin_name in "${!PLUGIN_JAR_BY_NAME[@]}" ; do
+        if [ -n "${PLUGIN_JAR_BY_NAME["$plugin_name"]}" ] ; then
+            fetch_artifact "${PLUGIN_JAR_BY_NAME[$plugin_name]}" \
+                "$ARTIFACTS/plugins/$plugin_name.jar"
+        fi
+    done
+}
+
 cleanup() {
     docker-compose "${COMPOSE_ARGS[@]}" down -v --rmi local 2>/dev/null
     rm -rf "$ARTIFACTS"
 }
 
+declare -A PLUGIN_JAR_BY_NAME
 while (( "$#" )); do
     case "$1" in
         --help|-h)                    usage ;;
         --gerrit-war|-g)              shift ; GERRIT_WAR=$1 ;;
-        --events-plugin-jar|-e)       shift ; EVENTS_PLUGIN_JAR=$1 ;;
+        --plugin)                     shift ; PLUGIN_JAR_BY_NAME["$1"]=$2 ; shift ;;
         *)                            usage "invalid argument $1" ;;
     esac
     shift
@@ -78,15 +101,14 @@
 COMPOSE_YAML="$MYDIR/docker-compose.yaml"
 COMPOSE_ARGS=(--project-name "$PROJECT_NAME" -f "$COMPOSE_YAML")
 check_prerequisite
-mkdir -p -- "$ARTIFACTS"
-if [ -n "$EVENTS_PLUGIN_JAR" ] ; then
-    cp -f "$EVENTS_PLUGIN_JAR" "$ARTIFACTS/events.jar"
-elif [ -e "$BAZEL_BUILT_JAR" ] ; then
-    cp -f "$BAZEL_BUILT_JAR" "$ARTIFACTS/events.jar"
-else
-    usage "Cannot find plugin jar, did you forget --events-plugin-jar?"
+mkdir -p -- "$ARTIFACTS/bin" "$ARTIFACTS/plugins"
+if [ -z "${PLUGIN_JAR_BY_NAME["$PLUGIN"]}" ] ; then
+    PLUGIN_JAR_BY_NAME["$PLUGIN"]=$BAZEL_BUILT_JAR
 fi
-[ -n "$GERRIT_WAR" ] && cp -f -- "$GERRIT_WAR" "$ARTIFACTS/gerrit.war"
+if [ ! -e "${PLUGIN_JAR_BY_NAME["$PLUGIN"]}" ] ; then
+    usage "Cannot find plugin jar, did you forget --plugin?"
+fi
+progress "Fetching artifacts" fetch_artifacts
 ( trap cleanup EXIT SIGTERM
     progress "Building docker images" build_images
     run_events_plugin_tests
