diff --git a/.gitlab/ci/.build-container-images.yml b/.gitlab/ci/.build-container-images.yml
index 882edeff25e7b5ca23aca37e7a7c1cb0429145bb..02153dd65453f2ba54ce2bf35da4e40b8a93f053 100644
--- a/.gitlab/ci/.build-container-images.yml
+++ b/.gitlab/ci/.build-container-images.yml
@@ -59,3 +59,15 @@ build-arista-routing-engine-image:
         - docker tag "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$TAG" "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$NEWTAG"
         - docker push "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$NEWTAG"
     <<: *build
+
+build-plugin-registry-image:
+    script:
+        - PLUGIN_REGISTRY_IMAGE_NAME="${CI_REGISTRY_IMAGE}/plugin-registry"
+        - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
+        - docker buildx build -t "$PLUGIN_REGISTRY_IMAGE_NAME:$TAG" -f "${CI_PROJECT_DIR}/plugin-registry/plugin-registry.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" .
+        - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$TAG"
+        # replace all slashes in the tag with hyphen, because slashes are not allowed in tags
+        - NEWTAG=${CI_COMMIT_BRANCH//\//-}
+        - docker tag "$PLUGIN_REGISTRY_IMAGE_NAME:$TAG" "$PLUGIN_REGISTRY_IMAGE_NAME:$NEWTAG"
+        - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$NEWTAG"
+    <<: *build