Files
gremiumhub/gremiumhub-backend/Dockerfile
Denis Lugowski afec157b35
All checks were successful
CI/CD Pipeline / frontend (push) Successful in 5m52s
CI/CD Pipeline / backend (push) Successful in 7m58s
CI/CD Pipeline / deploy (push) Successful in 1s
major: Rename legalconsenthub to gremiumhub
2026-03-16 10:28:32 +01:00

51 lines
1.2 KiB
Docker

FROM eclipse-temurin:21-jdk-alpine AS builder
WORKDIR /workspace/app
RUN mkdir -p ../api
COPY api/gremiumhub.yml ../api/
COPY gremiumhub-backend/gradlew .
COPY gremiumhub-backend/gradle gradle
COPY gremiumhub-backend/build.gradle .
COPY gremiumhub-backend/settings.gradle .
RUN chmod +x ./gradlew
RUN ./gradlew dependencies --no-daemon
COPY gremiumhub-backend/src src
RUN ./gradlew bootJar -x test --no-daemon
FROM eclipse-temurin:21-jre-alpine AS runner
WORKDIR /app
# Install TeXLive and LuaLaTeX
RUN apk add --no-cache \
texlive-luatex \
texmf-dist-plaingeneric \
texmf-dist-latexrecommended \
texmf-dist-latexextra \
texmf-dist-langgerman \
texmf-dist-fontsextra
RUN addgroup -S spring && adduser -S spring -G spring
# PDF cache directory must be writable by the non-root user (and ideally mounted as a volume in production)
RUN mkdir -p /var/lib/gremiumhub/pdfs && chown -R spring:spring /var/lib/gremiumhub
USER spring:spring
COPY --from=builder /workspace/app/build/libs/*.jar app.jar
ENV SPRING_PROFILES_ACTIVE=prod
ENV JAVA_OPTS="-Xms256m -Xmx512m"
ENV GREMIUMHUB_PDF_STORAGE_FILESYSTEM_BASE_DIR=/var/lib/gremiumhub/pdfs
EXPOSE 8080
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]