정구리의 우주정복
[Docker] Docker 환경에 Keycloak 설치하기 (Docker compose 로 keycloak 설치) 본문
[Docker] Docker 환경에 Keycloak 설치하기 (Docker compose 로 keycloak 설치)
Jungry_ 2024. 4. 21. 20:32Keycloak 설치해서 토이프로젝트의 사용자 인증, 권한 관리를 해버릴 예정이다 + Docker 공부도 해보려고 한다
Docker 환경에 keycloak 설치 하는 방법은 두가지가 있다 !
(1) docker run
(2) docker compose
위 링크에서는 docker run 을 사용하고 있지만 이번에는 docker compose 를 사용해서 설치해보려 한다
그냥 .. yaml 파일 작성하는거 해보고싶어서 한다 (공부할겸)
Docker Compose 란 ?
Docker Compose
는 여러개의 컨테이너로 구성된 복잡한 애플리케이션을 쉽게 관리하기 위한 도구이다 !Docker run
을 사용하면 개별 container 생성이 가능한데 매번 n개의 container 를 생성하는 것은 관리하기 어렵고 일일히 실행하기 번거롭기 때문에
하나의 컨테이너 묶음으로 관리하기 위해 Docker compose
를 사용한다. yaml 파일에 옵션들을 정의해서 사용하면 된다 !
컨테이너의 수가 많아지고, 정의해야 할 옵션이 많아진다면 Docker compose
를 사용하자 !
Docker Compose 설치
Mac 기준으로 작성하도록 하겠음 !
설치 및 버전 확인
brew install cask docker-compose
docker-compose -v
Docker Compose version v2.22.0-desktop.2
Yaml 파일 작성
흠 ...
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:24.0.3 start-dev
공식문서에 docker run 시 이렇게 하라고 했으니까 이걸 바탕으로 yml 파일을 만들어보겠다 ! (gpt 의 도움을 받음)
docker-compose.yml
version: '3.8'
services:
keyclaok:
image: quay.io/keycloak/keycloak:24.0.3
ports:
- "3000:8080"
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
command: ["start-dev"]
Docker Compose 실행
해당 yml 파일이 있는 폴더로 이동해docker-compose up
명령어를 사용해 실행해준다
jungry@jungry-MacBook-Pro toygry % docker-compose up
[+] Building 0.0s (0/0) docker:desktop-linux
[+] Running 1/0
✔ Container toygry-keyclaok-1 Recreated 0.1s
Attaching to toygry-keyclaok-1
toygry-keyclaok-1 | Updating the configuration and installing your custom providers, if any. Please wait.
toygry-keyclaok-1 | 2024-04-21 11:22:13,148 INFO [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 4245ms
toygry-keyclaok-1 | 2024-04-21 11:22:14,050 INFO [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: Base URL: <unset>, Hostname: <request>, Strict HTTPS: false, Path: <request>, Strict BackChannel: false, Admin URL: <unset>, Admin: <request>, Port: -1, Proxied: false
toygry-keyclaok-1 | 2024-04-21 11:22:14,206 WARN [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000569: Unable to persist Infinispan internal caches as no global state enabled
toygry-keyclaok-1 | 2024-04-21 11:22:14,243 INFO [org.infinispan.CONTAINER] (keycloak-cache-init) ISPN000556: Starting user marshaller 'org.infinispan.jboss.marshalling.core.JBossUserMarshaller'
toygry-keyclaok-1 | 2024-04-21 11:22:15,326 WARN [io.quarkus.agroal.runtime.DataSources] (JPA Startup Thread) Datasource <default> enables XA but transaction recovery is not enabled. Please enable transaction recovery by setting quarkus.transaction-manager.enable-recovery=true, otherwise data may be lost if the application is terminated abruptly
toygry-keyclaok-1 | 2024-04-21 11:22:16,579 INFO [org.keycloak.quarkus.runtime.storage.legacy.liquibase.QuarkusJpaUpdaterProvider] (main) Initializing database schema. Using changelog META-INF/jpa-changelog-master.xml
toygry-keyclaok-1 |
toygry-keyclaok-1 | UPDATE SUMMARY
toygry-keyclaok-1 | Run: 124
toygry-keyclaok-1 | Previously run: 0
toygry-keyclaok-1 | Filtered out: 0
toygry-keyclaok-1 | -------------------------------
toygry-keyclaok-1 | Total change sets: 124
toygry-keyclaok-1 |
toygry-keyclaok-1 | 2024-04-21 11:22:17,715 INFO [org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory] (main) Node name: node_289829, Site name: null
toygry-keyclaok-1 | 2024-04-21 11:22:17,770 INFO [org.keycloak.broker.provider.AbstractIdentityProviderMapper] (main) Registering class org.keycloak.broker.provider.mappersync.ConfigSyncEventListener
toygry-keyclaok-1 | 2024-04-21 11:22:17,798 INFO [org.keycloak.services] (main) KC-SERVICES0050: Initializing master realm
toygry-keyclaok-1 | 2024-04-21 11:22:18,618 INFO [io.quarkus] (main) Keycloak 24.0.3 on JVM (powered by Quarkus 3.8.3) started in 5.313s. Listening on: http://0.0.0.0:8080
toygry-keyclaok-1 | 2024-04-21 11:22:18,619 INFO [io.quarkus] (main) Profile dev activated.
toygry-keyclaok-1 | 2024-04-21 11:22:18,619 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, jdbc-h2, keycloak, logging-gelf, narayana-jta, reactive-routes, resteasy-reactive, resteasy-reactive-jackson, smallrye-context-propagation, vertx]
toygry-keyclaok-1 | 2024-04-21 11:22:19,003 INFO [org.keycloak.services] (main) KC-SERVICES0009: Added user 'admin' to realm 'master'
toygry-keyclaok-1 | 2024-04-21 11:22:19,005 WARN [org.keycloak.quarkus.runtime.KeycloakMain] (main) Running the server in development mode. DO NOT use this configuration in production.
Keycloak 정상 동작 확인
localhost:3000
으로 이동 (자신이 설정한 포트로 접속)
후 admin,admin 으로 로그인 (자신이 설정한 admin 정보로 접속)
성공적으로 설치 완료된 걸 확인할 수 있다 !!
'STUDY > RECORD' 카테고리의 다른 글
[Git] fatal: unable to access 'https://github.com/[Organizations]/[repo 명].git/': The requested URL returned error: 403 에러 해결 (1) | 2024.02.07 |
---|---|
[MacOS] Mac Homebrew 설치하기 (install homebrew for mac) (0) | 2023.10.03 |
[keycloak] local 환경에 keycloak 설치 및 실행 (keycloak 기본 포트 변경) (0) | 2023.08.23 |
[Docker] jar 파일 생성, 이미지 생성 및 nexus 업로드 쿠버네티스 배포 과정 (5) | 2023.05.14 |
HTML 과 XHTML 의 차이 (0) | 2023.03.20 |