🍪容器镜像
仅当需要自定义容器镜像时才需要,否则直接使用官方镜像即可
可以参考如下这个项目:
https://github.com/yangsijie666/keycloak-dingtalk-social-identity-provider
该项目实现了自定义 Keycloak IDP,用于支持钉钉登陆。
看下该项目的容器镜像打包 Dockerfile:
FROM maven:3.8-openjdk-17 AS builder
WORKDIR /app
COPY pom.xml /app
COPY ./settings.xml /usr/share/maven/conf/settings.xml
RUN mvn verify --fail-never -s /usr/share/maven/conf/settings.xml
COPY . /app
RUN mvn clean install -s /usr/share/maven/conf/settings.xml
FROM quay.io/keycloak/keycloak:23.0.7 as kcbuilder
# Enable health and metrics support
ENV KC_HEALTH_ENABLED=true
ENV KC_METRICS_ENABLED=true
WORKDIR /opt/keycloak
COPY --from=builder --chown=keycloak:keycloak /app/target/*.jar /opt/keycloak/providers/
RUN /opt/keycloak/bin/kc.sh build
FROM quay.io/keycloak/keycloak:23.0.7
COPY --from=kcbuilder /opt/keycloak/ /opt/keycloak/
ENTRYPOINT [ "/opt/keycloak/bin/kc.sh" ]
其中 1 ~ 7 行是在构建插件 jar 包,不用管;
12 ~ 13 行开启 HA 环境下需要用到的 /health/ready
、/health/live
、/health/started
和 /metrics
,分别为存活探测和暴露监控指标;
16 行将构建的 jar 包放入 Keycloak 指定目录中;
17 行执行 build 命令;
19 ~ 21 行将 build 后生成的所有文件覆盖至当前目录下,形成运行用的容器。
后续就是将容器构建,推送至镜像仓库,这里就不赘述了。
最后更新于
这有帮助吗?