Repository: quarkusio/quarkus
Issue: Apicurio Devservice can not be configured with apicurio-registry-mem images from outside of DockerHub

### Describe the bug

Apicurio DevServices requires images from apicurio/apicurio-registry-mem. Due to this constraint we cannot use the Apicurio images copied to our own container registry.
In order to avoid reaching our DockerHub download limits, we try to use as much as possible images copied to our own registry. 

### Expected behavior

It should be possible to start the Apicurio DevService using Apicurio images from any repository

### Actual behavior

```
ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor#startApicurioRegistryDevService threw an exception: java.lang.RuntimeException: java.lang.IllegalArgumentException: Only apicurio/apicurio-registry-mem images are supported
        at io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor.startApicurioRegistryDevService(DevServicesApicurioRegistryProcessor.java:92)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:882)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:833)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.lang.IllegalArgumentException: Only apicurio/apicurio-registry-mem images are supported
        at io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor$ApicurioRegistryContainer.<init>(DevServicesApicurioRegistryProcessor.java:273)
        at io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor.lambda$startApicurioRegistry$1(DevServicesApicurioRegistryProcessor.java:165)
        at java.base/java.util.Optional.orElseGet(Optional.java:364)
        at io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor.startApicurioRegistry(DevServicesApicurioRegistryProcessor.java:162)
        at io.quarkus.apicurio.registry.avro.DevServicesApicurioRegistryProcessor.startApicurioRegistryDevService(DevServicesApicurioRegistryProcessor.java:83)
```

### How to Reproduce?

1. In the Avro Kafka quickstart project (https://github.com/quarkusio/quarkus-quickstarts/tree/main/kafka-avro-schema-quickstart) configure the following property in the `application.properties`

`quarkus.apicurio-registry.devservices.image-name=quay.io/apicurio/apicurio-registry-mem:2.2.1.Final`
You can substitute this image for any similar images stored in a container registry different from DockerHub

2. Start the quickstart service with `mvn quarkus:dev`

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

11.0.14

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.7.4.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

Apache Maven 3.8.2

### Additional information

There is an solved issue similar to this one but for the Kafka DevService : https://github.com/quarkusio/quarkus/issues/23978 

Changed files:
extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesProcessor.java
extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/DevServicesApicurioRegistryProcessor.java
extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesBuildTimeConfig.java
extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesProcessor.java
extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesBuildTimeConfig.java
extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/ApicurioRegistryDevServicesBuildTimeConfig.java

diff --git a/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/ApicurioRegistryDevServicesBuildTimeConfig.java b/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/ApicurioRegistryDevServicesBuildTimeConfig.java
index 215893702e3..8a9e06a4a9b 100644
--- a/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/ApicurioRegistryDevServicesBuildTimeConfig.java
+++ b/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/ApicurioRegistryDevServicesBuildTimeConfig.java
@@ -29,6 +29,7 @@ public class ApicurioRegistryDevServicesBuildTimeConfig {
     /**
      * The Apicurio Registry image to use.
      * Note that only Apicurio Registry 2.x images are supported.
+     * Specifically, the image repository must end with {@code apicurio/apicurio-registry-mem}.
      */
     @ConfigItem(defaultValue = "quay.io/apicurio/apicurio-registry-mem:2.2.3.Final")
     public String imageName;
diff --git a/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/DevServicesApicurioRegistryProcessor.java b/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/DevServicesApicurioRegistryProcessor.java
index 89019e19ccf..7328d978c35 100644
--- a/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/DevServicesApicurioRegistryProcessor.java
+++ b/extensions/schema-registry/devservice/deployment/src/main/java/io/quarkus/apicurio/registry/devservice/DevServicesApicurioRegistryProcessor.java
@@ -259,7 +259,7 @@ private ApicurioRegistryContainer(DockerImageName dockerImageName, int fixedExpo
                 withLabel(DEV_SERVICE_LABEL, serviceName);
             }
             withEnv("QUARKUS_PROFILE", "prod");
-            if (!dockerImageName.getRepository().equals("apicurio/apicurio-registry-mem")) {
+            if (!dockerImageName.getRepository().endsWith("apicurio/apicurio-registry-mem")) {
                 throw new IllegalArgumentException("Only apicurio/apicurio-registry-mem images are supported");
             }
         }
diff --git a/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesBuildTimeConfig.java b/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesBuildTimeConfig.java
index e5b8527883b..8ff1ec29002 100644
--- a/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesBuildTimeConfig.java
+++ b/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesBuildTimeConfig.java
@@ -27,7 +27,8 @@ public class AmqpDevServicesBuildTimeConfig {
 
     /**
      * The image to use.
-     * Note that only {@code quay.io/artemiscloud/activemq-artemis-broker} images are supported.
+     * Note that only ActiveMQ Artemis images are supported.
+     * Specifically, the image repository must end with {@code artemiscloud/activemq-artemis-broker}.
      *
      * Check https://quay.io/repository/artemiscloud/activemq-artemis-broker to find the available versions.
      */
diff --git a/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesProcessor.java b/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesProcessor.java
index 3ba67d99a20..7203c06c099 100644
--- a/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesProcessor.java
+++ b/extensions/smallrye-reactive-messaging-amqp/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/amqp/deployment/AmqpDevServicesProcessor.java
@@ -282,7 +282,7 @@ private ArtemisContainer(DockerImageName dockerImageName, String extra, int fixe
             if (serviceName != null) { // Only adds the label in dev mode.
                 withLabel(DEV_SERVICE_LABEL, serviceName);
             }
-            if (dockerImageName.getRepository().equals("artemiscloud/activemq-artemis-broker")) {
+            if (dockerImageName.getRepository().endsWith("artemiscloud/activemq-artemis-broker")) {
                 waitingFor(Wait.forLogMessage(".*AMQ241004.*", 1)); // Artemis console available.
             } else {
                 throw new IllegalArgumentException("Only artemiscloud/activemq-artemis-broker images are supported");
diff --git a/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesBuildTimeConfig.java b/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesBuildTimeConfig.java
index 8f677373d33..ff4617cdd6d 100644
--- a/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesBuildTimeConfig.java
+++ b/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesBuildTimeConfig.java
@@ -122,6 +122,8 @@ public static class Binding {
 
     /**
      * The image to use.
+     * Note that only official RabbitMQ images are supported.
+     * Specifically, the image repository must end with {@code rabbitmq}.
      */
     @ConfigItem(defaultValue = "rabbitmq:3.9-management")
     public String imageName;
diff --git a/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesProcessor.java b/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesProcessor.java
index 666ff26f498..9698887ca2f 100644
--- a/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesProcessor.java
+++ b/extensions/smallrye-reactive-messaging-rabbitmq/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/rabbitmq/deployment/RabbitMQDevServicesProcessor.java
@@ -374,7 +374,7 @@ private ConfiguredRabbitMQContainer(DockerImageName dockerImageName, int fixedEx
             if (serviceName != null) { // Only adds the label in dev mode.
                 withLabel(DEV_SERVICE_LABEL, serviceName);
             }
-            if (!dockerImageName.getRepository().equals("rabbitmq")) {
+            if (!dockerImageName.getRepository().endsWith("rabbitmq")) {
                 throw new IllegalArgumentException("Only official rabbitmq images are supported");
             }
         }