Keyclock 컨테이너를 postgresql db와 함께 사용하는 방법에 대하 알아봅니다.

 

 

 

0. 참고

 

jbos/keycloak는 더 이상 관리되지 않습니다. 현재 글 작성 시점에 dockerhub에는 공식 keycloak 이미지가 배포되고 있지 않습니다. 

 

 

 

1. docker-compose.yml

 

다음과 같이 docker-compose.yml을 작성합니다.

 

version: '3.8'

services:
  keycloak:
    image: quay.io/keycloak/keycloak:24.0.2
    ports:
      - "8080:8080"
    environment:
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://your.dbhost.com:5432/yourdbname
      KC_DB_USERNAME: yourdbuser
      KC_DB_PASSWORD: yourdbpassword
      KC_HTTP_ENABLED: true
      KC_HEALTH_ENABLED: true
      KEYCLOAK_ADMIN: yourkeycloakuser
      KEYCLOAK_ADMIN_PASSWORD: yourkeycloakpassword
    command: 
      - start-dev 
      - --import-realm
    volumes:
      - /home/keycloak/realm.json:/opt/keycloak/data/import/realm.json

 

환경 변수에대해 간단하게 설명하자면 다음과 같습니다.

  • KC_DB: 사용할 데이터베이스의 종류입니다. postgres로 두면 됩니다.
  • KC_DB_URL: postgres 접속 정보입니다. host, port, db이름을 변경해 사용하시면 됩니다.
  • KC_DB_USERNAME: DB 접속 계정 정보입니다. 변경해 사용하시면 됩니다.
  • KC_DB_PASSWORD: DB 접속 계정의 암호입니다. 변경해 사용하시면 됩니다.
  • KC_HTTP_ENABLE: HTTP를 통해 접근 가능한지 여부를 결정합니다. 
  • KC_HEALTH_ENABLED: 상태 확인 엔드포인트를 활성화할지 여부를 결정합니다. true로 설정한 경우 다음과 같은 엔드포인트가 활성화됩니다.
    • /health/live
    • /health/ready
    • /health/started
    • /health
  • KEYCLOAK_ADMIN: 관리용 페이지에 로그인할 수 있는 계정을 설정합니다.
  • KEYCLOAK_ADMIN_PASSWORD: 관리용 페이지에 로그인 할 수 있는 계정의 암호를 설정합니다.

 

 

 

 

 

반응형

+ Recent posts