Files
mdm-ordinis/ordinis-app/Dockerfile
T
2026-05-10 17:10:45 +00:00

37 lines
1.9 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Multi-stage build для ordinis-app.
#
# COPY . ./ + root .dockerignore: один rule вместо explicit per-module
# list. Когда добавляется новый Maven module в parent pom.xml — Docker
# build автоматически его подхватит, без правки этого файла. Lesson из
# Phase A (notifications module): explicit COPY list пропускал новый
# module → `mvn -am package` падал на parent pom validation.
#
# .dockerignore исключает frontend (admin-ui), bench, docs, target/, .git/,
# IDE metadata — backend image остаётся компактным.
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
# Git info из CI environment (`.gitlab-ci.yml` `--build-arg`) — нужен для
# Spring Boot build-info goal через ordinis-app/pom.xml. Внутри Docker
# context .git/ исключён (.dockerignore), поэтому git-commit-id-maven-plugin
# не может прочитать локально. Defaults в pom.xml gracefully fallback'ят
# если ARG'и не переданы (local docker build без ENV).
ARG GIT_COMMIT=unknown
ARG GIT_BRANCH=unknown
# GIT_TAG defaults to "none" (не пусто): Maven property substitution трактует
# empty value как null → Spring Boot build-info goal валится с
# "Additional property 'tag' is illegal as its value is null".
ARG GIT_TAG=none
ARG GIT_TIME=unknown
WORKDIR /build
COPY . ./
RUN mvn -B -pl ordinis-app -am package -DskipTests \
-Dgit.commit.id.abbrev="$GIT_COMMIT" \
-Dgit.branch="$GIT_BRANCH" \
-Dgit.tags="$GIT_TAG" \
-Dgit.commit.time="$GIT_TIME"
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
WORKDIR /app
COPY --from=build /build/ordinis-app/target/*.jar /app/app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-XX:+UseZGC", "-XX:MaxRAMPercentage=75", "-jar", "/app/app.jar"]