/
Dockerfile
44 lines (27 loc) · 1.2 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ARG KEYCLOAK_IMAGE="quay.io/keycloak/keycloak:21.0"
# Build protocoll mapper so that it always has the current version
FROM maven:3.8 as jdk-builder
WORKDIR /workspace
COPY . ./
RUN mvn clean package
# Build keycloak
FROM ${KEYCLOAK_IMAGE} as keycloak-builder
COPY --from=jdk-builder /workspace/protocol-mapper/target/keycloak-custom-email-domain-mapper.jar /opt/keycloak/providers/
RUN /opt/keycloak/bin/kc.sh build
# Create keycloak image
FROM ${KEYCLOAK_IMAGE}
COPY --from=keycloak-builder /opt/keycloak/ /opt/keycloak/
WORKDIR /opt/keycloak
COPY ./docker-entrypoint.sh /opt/keycloak
COPY ./data-setup/src/main/bash/populate-data.sh /opt/keycloak
COPY --from=jdk-builder /workspace/data-setup/target/data-setup.jar /opt/keycloak
COPY ./data-setup/src/main/bash/populate-data.sh /opt/keycloak
USER root
RUN mkdir -p /app
# we use a custom entry point for testdata population
COPY ./docker-entrypoint.sh /app
RUN chmod +x /app/docker-entrypoint.sh \
&& chmod +x /opt/keycloak/populate-data.sh
USER 1000
ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["--verbose", "start-dev", "--http-enabled=true", "--http-relative-path=/auth", "--http-port=8080", "--hostname-strict=false", "--hostname-strict-https=false"]