feat(docker): Dockerfile для read-api и projection-writer

Multi-stage build (Maven 3.9.9 + Eclipse Temurin 21 → eclipse-temurin:21-jre):
- ordinis-read-api/Dockerfile (port 8081)
- ordinis-projection-writer/Dockerfile (port 8082)

JVM args: -XX:+UseZGC -XX:MaxRAMPercentage=75 (low-pause GC + container-aware
memory). MaxRAMPercentage важен потому что Helm задаёт container memory
limit через resources.limits.memory; JVM должна respect'ить это.

Helm chart (terravault/ordinis-infra/charts/ordinis/) теперь имеет полный
набор images для deploy:
  registry.k8s.265.nstart.local/terravault/ordinis-app:<tag>
  registry.k8s.265.nstart.local/terravault/ordinis-read-api:<tag>
  registry.k8s.265.nstart.local/terravault/ordinis-projection-writer:<tag>
  registry.k8s.265.nstart.local/terravault/ordinis-migrations:<tag>
This commit is contained in:
Zimin A.N.
2026-05-03 16:10:21 +03:00
parent 6a6067e70b
commit 4723af5bca
2 changed files with 40 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
FROM maven:3.9.9-eclipse-temurin-21 AS build
WORKDIR /build
COPY pom.xml ./
COPY ordinis-domain ./ordinis-domain
COPY ordinis-validation ./ordinis-validation
COPY ordinis-events-api ./ordinis-events-api
COPY ordinis-outbox ./ordinis-outbox
COPY ordinis-rest-api ./ordinis-rest-api
COPY ordinis-cuod-bundle ./ordinis-cuod-bundle
COPY ordinis-app ./ordinis-app
COPY ordinis-projection-writer ./ordinis-projection-writer
COPY ordinis-migrations ./ordinis-migrations
COPY ordinis-read-api ./ordinis-read-api
RUN mvn -B -pl ordinis-read-api -am package -DskipTests
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=build /build/ordinis-read-api/target/*.jar /app/app.jar
EXPOSE 8081
ENTRYPOINT ["java", "-XX:+UseZGC", "-XX:MaxRAMPercentage=75", "-jar", "/app/app.jar"]