Hero Image
[Keycloak] docker 安裝

採用的映象檔是 bitnami/keycloak ,因為我需要使用網址來區分服務(同一個 port 的情況下),所以採取反向代理的方式,一方面讓之後要部屬其他應用、加上憑證、等等操作都交給 nginx 比較方便。 建立 docker 網路 mynetwork,如果設定其他名稱,以下步驟再自行調整對應。 docker create network mynetwork 建立 docker-compose 環境 keycloak/.env KEYCLOCK_IMAGE=bitnami/keycloak:23.0.3 KEYCLOAK_DATABASE_VENDOR=postgresql KEYCLOAK_DATABASE_PORT=5432 KEYCLOAK_DATABASE_USER=keycloak KEYCLOAK_DATABASE_PASSWORD=password KEYCLOAK_DATABASE_NAME=keycloak KEYCLOAK_ADMIN_USER=admin KEYCLOAK_ADMIN_PASSWORD=admin keycloak/docker-compose.yml version: '3' volumes: postgres_data: driver: local services: keycloak_db: image: postgres restart: always volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: ${KEYCLOAK_DATABASE_NAME} POSTGRES_USER: ${KEYCLOAK_DATABASE_USER} POSTGRES_PASSWORD: ${KEYCLOAK_DATABASE_PASSWORD} networks: - mynetwork keycloak: image: ${KEYCLOCK_IMAGE} environment: KEYCLOAK_DATABASE_VENDOR: ${KEYCLOAK_DATABASE_VENDOR} KEYCLOAK_DATABASE_HOST: keycloak_db KEYCLOAK_DATABASE_PORT: ${KEYCLOAK_DATABASE_PORT} KEYCLOAK_DATABASE_NAME: ${KEYCLOAK_DATABASE_NAME} KEYCLOAK_DATABASE_USER: ${KEYCLOAK_DATABASE_USER} KEYCLOAK_DATABASE_PASSWORD: ${KEYCLOAK_DATABASE_PASSWORD} KEYCLOAK_DATABASE_SCHEMA: public KEYCLOAK_ADMIN_USER: ${KEYCLOAK_ADMIN_USER} KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD} KEYCLOAK_ENABLE_HEALTH_ENDPOINTS: 'true' KEYCLOAK_ENABLE_STATISTICS: 'true' KC_PROXY: edge KC_PROXY_ADDRESS_FORWARDING: 'true' KC_HTTP_ENABLED: 'true' restart: unless-stopped networks: - mynetwork depends_on: - keycloak_db networks: mynetwork: external: true 建立 nginx/nginx.