Hi there,
I'm trying to configure Keycloak running in Docker to use Postgres and get the following error:
2023-07-09 10:52:10 2023-07-09 09:52:10,184 DEBUG [io.quarkus.runtime.util.ContainerRuntimeUtil] (main) Failure to read info output from docker: java.io.IOException: Cannot run program "docker": error=2, No such file or directory
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil.getRootlessStateFor(ContainerRuntimeUtil.java:71)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil$ContainerRuntime.<init>(ContainerRuntimeUtil.java:111)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil$ContainerRuntime.<clinit>(ContainerRuntimeUtil.java:105)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at java.base/java.lang.Class.getEnumConstantsShared(Class.java:3837)
2023-07-09 10:52:10 at java.base/java.lang.Class.getEnumConstants(Class.java:3812)
2023-07-09 10:52:10 at io.quarkus.runtime.configuration.HyphenateEnumConverter.<init>(HyphenateEnumConverter.java:27)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.getConverter(BuildTimeConfigurationReader.java:822)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.getConverter(BuildTimeConfigurationReader.java:865)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.readConfigValue(BuildTimeConfigurationReader.java:776)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.readConfigGroup(BuildTimeConfigurationReader.java:722)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.run(BuildTimeConfigurationReader.java:361)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.lambda$readConfiguration$0(BuildTimeConfigurationReader.java:322)
2023-07-09 10:52:10 at io.smallrye.config.SecretKeys.doUnlocked(SecretKeys.java:29)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.readConfiguration(BuildTimeConfigurationReader.java:322)
2023-07-09 10:52:10 at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:195)
2023-07-09 10:52:10 at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107)
2023-07-09 10:52:10 at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:331)
2023-07-09 10:52:10 at io.quarkus.runner.bootstrap.AugmentActionImpl.createProductionApplication(AugmentActionImpl.java:175)
2023-07-09 10:52:10 at io.quarkus.deployment.mutability.ReaugmentTask.main(ReaugmentTask.java:69)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doReaugment(QuarkusEntryPoint.java:84)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:48)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.command.Build.run(Build.java:75)
2023-07-09 10:52:10 at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
2023-07-09 10:52:10 at picocli.CommandLine.access$1300(CommandLine.java:145)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
2023-07-09 10:52:10 at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
2023-07-09 10:52:10 at picocli.CommandLine.execute(CommandLine.java:2078)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.runReAugmentation(Picocli.java:184)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.runReAugmentationIfNeeded(Picocli.java:121)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.parseAndRun(Picocli.java:89)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:88)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
2023-07-09 10:52:10 Caused by: java.io.IOException: error=2, No such file or directory
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
2023-07-09 10:52:10 ... 55 more
2023-07-09 10:52:10
2023-07-09 10:52:10
2023-07-09 10:52:10 2023-07-09 09:52:10,188 DEBUG [io.quarkus.runtime.util.ContainerRuntimeUtil] (main) Failure to read info output from podman: java.io.IOException: Cannot run program "podman": error=2, No such file or directory
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil.getRootlessStateFor(ContainerRuntimeUtil.java:71)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil$ContainerRuntime.<init>(ContainerRuntimeUtil.java:111)
2023-07-09 10:52:10 at io.quarkus.runtime.util.ContainerRuntimeUtil$ContainerRuntime.<clinit>(ContainerRuntimeUtil.java:106)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at java.base/java.lang.Class.getEnumConstantsShared(Class.java:3837)
2023-07-09 10:52:10 at java.base/java.lang.Class.getEnumConstants(Class.java:3812)
2023-07-09 10:52:10 at io.quarkus.runtime.configuration.HyphenateEnumConverter.<init>(HyphenateEnumConverter.java:27)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.getConverter(BuildTimeConfigurationReader.java:822)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.getConverter(BuildTimeConfigurationReader.java:865)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.readConfigValue(BuildTimeConfigurationReader.java:776)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.readConfigGroup(BuildTimeConfigurationReader.java:722)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader$ReadOperation.run(BuildTimeConfigurationReader.java:361)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.lambda$readConfiguration$0(BuildTimeConfigurationReader.java:322)
2023-07-09 10:52:10 at io.smallrye.config.SecretKeys.doUnlocked(SecretKeys.java:29)
2023-07-09 10:52:10 at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.readConfiguration(BuildTimeConfigurationReader.java:322)
2023-07-09 10:52:10 at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:195)
2023-07-09 10:52:10 at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107)
2023-07-09 10:52:10 at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:331)
2023-07-09 10:52:10 at io.quarkus.runner.bootstrap.AugmentActionImpl.createProductionApplication(AugmentActionImpl.java:175)
2023-07-09 10:52:10 at io.quarkus.deployment.mutability.ReaugmentTask.main(ReaugmentTask.java:69)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doReaugment(QuarkusEntryPoint.java:84)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:48)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.command.Build.run(Build.java:75)
2023-07-09 10:52:10 at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
2023-07-09 10:52:10 at picocli.CommandLine.access$1300(CommandLine.java:145)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
2023-07-09 10:52:10 at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
2023-07-09 10:52:10 at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
2023-07-09 10:52:10 at picocli.CommandLine.execute(CommandLine.java:2078)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.runReAugmentation(Picocli.java:184)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.runReAugmentationIfNeeded(Picocli.java:121)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.cli.Picocli.parseAndRun(Picocli.java:89)
2023-07-09 10:52:10 at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:88)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-09 10:52:10 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-09 10:52:10 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61)
2023-07-09 10:52:10 at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
2023-07-09 10:52:10 Caused by: java.io.IOException: error=2, No such file or directory
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
2023-07-09 10:52:10 at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
2023-07-09 10:52:10 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
2023-07-09 10:52:10 ... 55 more
2023-07-09 10:52:10
2023-07-09 10:52:10
2023-07-09 10:52:10 ERROR: Failed to run 'build' command.
2023-07-09 10:52:10 ERROR: No value present
2023-07-09 10:52:10 For more details run the same command passing the '--verbose' option. Also you can use '--help' to see the details about the usage of the particular command.
Here is my docker-compose.yml:
version:
"3.1"
services:
keycloak:
image:
quay.io/keycloak/keycloak:21.1.2 command:
- start-dev
# - --import-realm
environment:
KC_DB: keycloak
KC_DB_URL: jdbc:postgresql://postgres/keycloak
KC_DB_USERNAME: keycloak_user
KC_DB_PASSWORD: keycloak
KC_DB_SCHEMA: keycloak
KC_HOSTNAME: postgres
KC_FEATURES: docker
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
ports:
- 8080:8080
volumes:
- ./keycloak-config/:/opt/keycloak/data/import/
networks:
- postgres
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:15.3
hostname:
'postgres'
container_name:
'postgres'
restart: always
healthcheck:
test: [
"CMD",
"pg_isready",
"-q",
"-d",
"postgres",
"-U",
"postgres" ]
timeout: 45s
interval: 10s
retries: 10
logging:
options:
max-size: 10m
max-file:
"3"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- ./db/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/
- ~/development/apps/postgres_data:/var/lib/postgresql/data
ports:
-
"5433:5432"
networks:
- postgres
networks:
postgres:
driver: bridge
spring:
driver: bridge
volumes:
postgres: ~
data: ~
Postgres starts fine but don't understand the Keycloak error. What is the podman file it is trying to load? Is there an environment variable to turn debug/verbose on.
Regards,
John