-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
44 lines (32 loc) · 1.73 KB
/
Dockerfile
File metadata and controls
44 lines (32 loc) · 1.73 KB
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
# builder docker image
FROM maven:3-eclipse-temurin-17 AS builder
# set up workdir
WORKDIR /build
# download dependencies
COPY ./pom.xml /build
RUN mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
# build
COPY ./src /build/src
COPY ./profiles/prod /build/profiles/prod
RUN mvn clean package spring-boot:repackage -Pprod
# distributed docker image
FROM eclipse-temurin:25.0.1_8-jre
# Application Insights version
ARG APPINSIGHTS_VERSION=3.7.7
# expose server port
EXPOSE 8080
# Download script for reading docker secrets
ADD --chmod=555 https://raw.githubusercontent.com/HSLdevcom/jore4-tools/main/docker/read-secrets.sh /app/scripts/read-secrets.sh
# Downaload a Java applet to perform HEALTHCHECK with
ADD --chmod=444 https://raw.githubusercontent.com/HSLdevcom/jore4-tools/main/docker/HealthCheck.jar /app/scripts/HealthCheck.jar
# Connection string is provided as env in Kubernetes by secrets manager
# it should not be provided for other environments (local etc)
RUN mkdir -p /usr/src/jore4-auth
ADD --chmod=444 https://github.com/microsoft/ApplicationInsights-Java/releases/download/${APPINSIGHTS_VERSION}/applicationinsights-agent-${APPINSIGHTS_VERSION}.jar /usr/src/jore4-auth/applicationinsights-agent.jar
COPY --chmod=444 ./applicationinsights.json /usr/src/jore4-auth/applicationinsights.json
# copy over compiled jar
COPY --from=builder /build/target/*.jar /usr/src/jore4-auth/auth-backend.jar
# read docker secrets into environment variables and run application
CMD ["/bin/bash", "-c", "source /app/scripts/read-secrets.sh && java -javaagent:/usr/src/jore4-auth/applicationinsights-agent.jar -jar /usr/src/jore4-auth/auth-backend.jar"]
HEALTHCHECK --interval=1m --timeout=5s \
CMD ["java", "-jar", "/app/scripts/HealthCheck.jar"]