我正在使用Dockerfile创建 Keycloak 自定义镜像,具体如下:
FROM quay.io/keycloak/keycloak:18.0.2 as builder
ENV KC_HEALTH_ENABLED=true
ENV KC_METRICS_ENABLED=true
ENV KC_DB=postgres
# Install custom providers
RUN curl -sL https://github.com/aerogear/keycloak-metrics-spi/releases/download/2.5.3/keycloak-metrics-spi-2.5.3.jar -o /opt/keycloak/providers/keycloak-metrics-spi-2.5.3.jar
RUN /opt/keycloak/bin/kc.sh build
FROM quay.io/keycloak/keycloak:18.0.2
COPY --from=builder /opt/keycloak/ /opt/keycloak/
WORKDIR /opt/keycloak
ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "start"]
通过这个docker-compose文件,我可以运行Keycloak:
version: "3.9"
services:
keycloak_db:
image: postgres
environment:
- POSTGRES_USER=$DB_USER
- POSTGRES_PASSWORD=$DB_PASS
- POSTGRES_DB=$DB_NAME
- IGNORE_INIT_HOOK_LOCKFILE=true
volumes:
- ./db/:/docker-entrypoint-initdb.d/
ports:
- ${DB_EXTERNAL_PORT:-15432}:5432
keycloak:
container_name: keycloak
# image: quay.io/keycloak/keycloak:18.0.1
image: keycloak
ports:
- "${KEYCLOAK_EXTERNAL_PORT:-18180}:8080"
environment:
- KEYCLOAK_ADMIN=${KEYCLOAK_USER}
- KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_PASSWORD}
- KC_DB=postgres
- KC_DB_URL_HOST=$DB_HOST
- KC_DB_URL_PORT=5432
- KC_DB_URL_DATABASE=$DB_NAME
- KC_DB_SCHEMA=$KEYCLOAK_SCHEMA
- KC_DB_USERNAME=$DB_USER
- KC_DB_PASSWORD=$DB_PASS
- KC_HTTP_ENABLED=true
- KC_HOSTNAME=localhost
- KC_HOSTNAME_ADMIN=localhost
- KC_HOSTNAME_PORT=80
- KC_HOSTNAME_STRICT_BACKCHANNEL=true
- KC_HOSTNAME_STRICT_HTTPS=false
- KC_PROXY=edge
- KC_PROXY_ADDRESS_FORWARDING=true
- KC_KEYCLOAK_FRONTEND_URL=http://localhost:18180/
- KC_KEYCLOAK_URL=http://localhost:18180/
# - KC_LOG_LEVEL=debug
depends_on:
- keycloak_db
我可以看到Keycloak的主页:
![enter image description here](https://istack.dev59.com/ruwBq.webp)
![enter image description here](https://istack.dev59.com/eIiG4.webp)
出了什么问题? 编辑: 我将Keycloak版本升级到18.0.2。
如果我使用KC_FEATURES = admin2作为进一步的环境变量,我可以看到一些东西,但仍然无法看到管理控制台:
![enter image description here](https://istack.dev59.com/KHp85.webp)
ENV KC_FEATURES=token-exchange
,我可以看到登录页面:
![enter image description here](https://istack.dev59.com/2SsMW.webp)
![enter image description here](https://istack.dev59.com/E9lqY.webp)