Keycloak fails to run on rootless&readonly container because of Quarkus

26 views Asked by At

I am trying to run keycloak via operator using basically basic approach via operator described on ofc. sides: https://www.keycloak.org/operator/basic-deployment

Everything worked until I started to deploy a keycloak ending with this message:

Caused by: java.lang.IllegalStateException: java.nio.file.FileSystemException: /opt/keycloak/lib/quarkus/build-system.properties: Read-only file system
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:858)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
        at java.base/java.lang.Thread.run(Thread.java:840)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.nio.file.FileSystemException: /opt/keycloak/lib/quarkus/build-system.properties: Read-only file system
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:248)
        at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:105)
        at java.base/java.nio.file.Files.delete(Files.java:1152)
        at io.quarkus.bootstrap.util.IoUtils.createOrEmptyDir(IoUtils.java:114)
        at io.quarkus.deployment.pkg.steps.JarResultBuildStep.buildThinJar(JarResultBuildStep.java:601)
        at io.quarkus.deployment.pkg.steps.JarResultBuildStep.buildRunnerJar(JarResultBuildStep.java:224)
        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$3.execute(ExtensionLoader.java:849)

I tried to mount build-system.properties manually like this:

build-system-properties-configmap.yml

apiVersion: v1
data:
  build-system.properties: |-
    quarkus.application.name=keycloak-quarkus-server-app
    quarkus.application.version=24.0.2
    quarkus.build.version=3.8.3
    quarkus.version=3.8.3
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: build-system-properties-configmap

kubectl apply -f build-system-properties-configmap.yml

But it ended up with same error.

Any suggestions ?

0

There are 0 answers