I am trying to run Keycloak using the existing image option. On my local machine this is simple with this command:
docker run -p 8080:8080 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.0.7 start-dev
So I thought it would be straight forward in Render as well. I created a new web service and chose the “existing image” option. I set quay.io/keycloak/keycloak:26.0.7
as the image URL. Then added the KC_BOOTSTRAP_ADMIN_PASSWORD, KC_BOOTSTRAP_ADMIN_USERNAME and PORT (with value 8080) as env variables.
As the “docker command” I added this: /opt/keycloak/bin/kc.sh start-dev --http-host=0.0.0.0 --http-port=8080
But when I deploy, I get warning about port like “==> No open ports detected, continuing to scan…” and “==> Port scan timeout reached, no open ports detected on 0.0.0.0. Detected open ports on localhost – did you mean to bind one of these to 0.0.0.0?”
Still, the deployment does not fail, but the service is inaccessible in the URL of my service.
What am I missing? How can I use the “existing image” option to host Keycloak? What is the correct way to define the ports etc?