Prebuild Keycloak images for different database providers

I use Keycloak for private stuff, but want to run it in production mode (Docker).
To minimize my maintenance efforts, I want to avoid the build step and directly use the quay image.

Looking into the documentation, it’s not possible because the default database provider of the docker image (I’m working with 18.0.0) uses dev-file provider.
To change it, I MUST use the build step, because the runtime variable KC_DB isn’t working:

keycloak-new-keycloak-1 | 2022-04-29 17:08:57,415 WARN [io.quarkus.runtime.configuration.ConfigRecorder] (main) Build time property cannot be changed at runtime:
keycloak-new-keycloak-1 | - quarkus.datasource.jdbc.driver is set to ‘org.h2.jdbcx.JdbcDataSource’ but it is build time fixed to ‘org.mariadb.jdbc.MySQLDataSource’. Did you change the property quarkus.datasource.jdbc.driver after building the application?

Is there really no way around the build step, with using prod mode?
Is there a plan to provide more keycloak image versions with other prebuild providers?

Take a look at the --auto-build option. Running Keycloak in a container - Keycloak

1 Like

Thank you, that’s a working solution :slight_smile: