En este artículo vamos a describir como debe de instalarse un servidor keycloack en un contenedor docker y vamos a utilizar mariadb como repositorio de los datos de nuestro servidor, y explica las variables que puedes cambiar y como afectan.
Prerequisitos
Asegurate de tener instalado docker.
$ docker --version
Vamos a trabajar con la versión Docker CE 16.
Uso e instalación
Crea un recurso de red si lo vas a instalar en el mismo equipo, un contenedor para la base de datos y otro para el keycloak.
$ docker network create keycloak-network
Crea el contendor de la base de datos, para este caso yo voy a utilizar mariadb. Las variables que debes de cambiar cuando vas a crear el contenedor de mariadb para keycloak son:
- MYSQL_ROOT_PASSWORD. Contraseña del root de mariadb.
- MYSQL_DATABASE. Nombre de la base de datos donde se va a almacenar la información de keycloak.
- MYSQL_USER. Nombre del usuario de base de datos con el cual se va a conectar el servidor de keycloak.
- MYSQL_PASSWORD. Contraseña del usuario de base de datos, que va a utilizar el seridor de keycloak.
$ docker run -d
--name mariadb
--net keycloak-network
-e MYSQL_ROOT_PASSWORD=password
-e MYSQL_DATABASE=keycloak
-e MYSQL_USER=keycloak
-e MYSQL_PASSWORD=password mariadb
Ahora toca el turno para crear el contendor de keycloak, y que utilice la base de datos mariadb.
- KEYCLOAK_USER. Es el administrador de keycloak y el primer usuario con el cual vas a ingresar.
- KEYCLOAK_PASSWORD. La contraseña del administrador de keycloak.
- DB_VENDOR. Debe de escribirse el nombre del manejador de base de datos en minusculas, ES MUY QUISQUILLOSO asi es que pon los nombres exactamente como te dice la documentación.
- DB_USER. El nombre del usuario que creaste al crear el contenedor de mariadb, este es el que pusisten en la variable MYSQL_USER cuando creaste el contenedor de mariadb.
- DB_PASSWORD. Es la contraseña del usuario de la base de datos, es lo que pusiste en la variable MYSQL_PASSWORD.
$ docker run -it -d
--name keycloak
--net keycloak-network
-p8080:8080
-e KEYCLOAK_USER=administrador
-e KEYCLOAK_PASSWORD=password
-e DB_VENDOR=mariadb
-e DB_USER=keycloak
-e DB_PASSWORD=password
jboss/keycloak
Y ahora solo queda probar que todo este correcto, abre un explorador de internet y navega a la url http://localhost:8080/auth.
Navega a la opción de Administration Console, y completa el formulario. Debes de utilizar el nombre del usuario (KEYCLOAK_USER) y contraseña (KEYCLOAK_PASSWORD) que pusiste para crear el contenedor de keycloak.
Observaciones importantes, si tu detienes el contenedor de keycloak con la sentencia
$ docker stop keycloak
$ docker start keycloak
Te va a marcar un error y no vas a poder volverlo a levantar. Primero debes destruirlo y volverlo a generar. Para destruir el contenedor de docker utiliza la sentencia.
$ docker rm keycloak
Como toda la configuración esta en tu contenedor de base de datos no tienes de que preocuparte.