NPE with shared Keycloak dev services when exiting Quarkus dev mode
### Describe the bug

I have two Quarkus apps with separate Gradle builds and I am using shared Keycloak dev services. When I exit the Quarkus dev mode with `q + ENTER` I get the following error message with the app that is reusing the shared Keycloak dev service from the other one:

```
2023-06-08 09:12:52,339 ERROR [io.qua.oid.dep.dev.key.KeycloakDevServicesProcessor] (Quarkus Shutdown Thread) Failed to stop Keycloak container [Error Occurred After Shutdown]: java.lang.NullPointerException: Cannot invoke "java.io.Closeable.close()" because "this.closeable" is null
        at io.quarkus.deployment.builditem.DevServicesResultBuildItem$RunningDevService.close(DevServicesResultBuildItem.java:90)
        at io.quarkus.oidc.deployment.devservices.keycloak.KeycloakDevServicesProcessor$1.run(KeycloakDevServicesProcessor.java:217)
        at io.quarkus.deployment.builditem.CuratedApplicationShutdownBuildItem$1.run(CuratedApplicationShutdownBuildItem.java:48)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.close(QuarkusClassLoader.java:617)
        at io.quarkus.bootstrap.app.CuratedApplication.close(CuratedApplication.java:418)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.close(IsolatedDevModeMain.java:356)
        at io.quarkus.deployment.dev.IsolatedDevModeMain$6.run(IsolatedDevModeMain.java:466)
        at java.base/java.lang.Thread.run(Thread.java:833)
```

### Expected behavior

I would not expect it to throw an exception.

### Actual behavior

It throws an NPE.

### How to Reproduce?

_No response_

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

_No response_

### Output of `java -version`

openjdk 17.0.7 2023-04-18 OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7) OpenJDK 64-Bit Server VM Temurin-17.0.7+7 (build 17.0.7+7, mixed mode, sharing)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.16.6.Final

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

Gradle 7.6.1

### Additional information

_No response_
diff --git a/core/deployment/src/main/java/io/quarkus/deployment/builditem/DevServicesResultBuildItem.java b/core/deployment/src/main/java/io/quarkus/deployment/builditem/DevServicesResultBuildItem.java
index 5ed1385142e..560a9d1f49e 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/builditem/DevServicesResultBuildItem.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/builditem/DevServicesResultBuildItem.java
@@ -87,7 +87,9 @@ public boolean isOwner() {
 
         @Override
         public void close() throws IOException {
-            this.closeable.close();
+            if (this.closeable != null) {
+                this.closeable.close();
+            }
         }
 
         public DevServicesResultBuildItem toBuildItem() {
['core/deployment/src/main/java/io/quarkus/deployment/builditem/DevServicesResultBuildItem.java']