forked from kviklet/kviklet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
60 lines (41 loc) · 1.62 KB
/
Copy pathDockerfile
File metadata and controls
60 lines (41 loc) · 1.62 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
FROM gradle:8.14.3-jdk21 AS build
WORKDIR /home/gradle/src
COPY --chown=gradle:gradle ./backend .
RUN gradle --version --no-daemon
RUN gradle build -x kaptTestKotlin -x compileTestKotlin -x test --no-daemon
FROM node:22 AS build-frontend
WORKDIR /app
COPY ./frontend/package-lock.json ./frontend/package.json ./
RUN npm ci --production
COPY ./frontend .
RUN npm run build
# Needed to copy a working Java runtime to the final image
FROM amazoncorretto:21 AS javaruntime
FROM nginxinc/nginx-unprivileged:1.27
# Build arguments for version info
ARG VERSION=dev
ARG BUILD_DATE=unknown
ARG GIT_COMMIT=unknown
WORKDIR /app
USER root
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-client && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
COPY --from=javaruntime /usr/lib/jvm/java-21-amazon-corretto /usr/lib/jvm/java-21-amazon-corretto
# Set Java environment variables
ENV JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto
ENV PATH="${JAVA_HOME}/bin:${PATH}"
# Set version info environment variables (Spring Boot relaxed binding maps these)
ENV APP_VERSION=${VERSION}
ENV APP_BUILD_DATE=${BUILD_DATE}
ENV APP_GIT_COMMIT=${GIT_COMMIT}
USER nginx
COPY --chown=nginx:nginx ./frontend/docker/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
COPY --from=build-frontend --chown=nginx:nginx /app/build /usr/share/nginx/html
COPY --from=build --chown=nginx:nginx /home/gradle/src/build/libs/*.jar app.jar
COPY --chown=nginx:nginx --chmod=755 ./run.sh .
EXPOSE 8080
CMD ["/usr/bin/bash", "./run.sh"]