ci(docker): future-proof backend Dockerfiles (fix root cause from Phase A break)
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
# Применяется только когда BUILD_CONTEXT=. (root) — это backend Dockerfile'ы
|
||||||
|
# (ordinis-app, ordinis-read-api, ordinis-projection-writer, ordinis-migrations).
|
||||||
|
# Admin-ui / docs Dockerfile'ы используют BUILD_CONTEXT=ordinis-admin-ui/ или
|
||||||
|
# docs/ — этот файл их НЕ затрагивает (Docker BuildKit ищет .dockerignore в
|
||||||
|
# build context root, не в repo root).
|
||||||
|
#
|
||||||
|
# Цель: backend Dockerfile'ы могут делать `COPY . ./` (один rule вместо
|
||||||
|
# explicit per-module COPY list) — новый Maven module не требует правки
|
||||||
|
# Dockerfile'ов. Lesson из Phase A: добавили <module>ordinis-notifications</module>
|
||||||
|
# в pom.xml, забыли COPY в 3 Dockerfile'а → docker build падал на parent
|
||||||
|
# pom validation.
|
||||||
|
|
||||||
|
# Git и IDE
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
.gitlab-ci.yml
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Maven build artifacts (jar'ы для backend Dockerfile'ов готовятся в build
|
||||||
|
# stage внутри docker — repo target/ не нужен, плюс размер).
|
||||||
|
**/target/
|
||||||
|
**/.m2/
|
||||||
|
*.iml
|
||||||
|
*.bak
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Frontend в backend image не нужен и весит больше всего остального.
|
||||||
|
# Каждый из 3 backend Dockerfile'ов делает только Java build.
|
||||||
|
ordinis-admin-ui/
|
||||||
|
|
||||||
|
# Ordinis bench — JMH benchmarks, не shippable artifact.
|
||||||
|
ordinis-bench/
|
||||||
|
|
||||||
|
# Documentation builds
|
||||||
|
docs/_dist/
|
||||||
|
docs/node_modules/
|
||||||
|
docs-internal/
|
||||||
|
|
||||||
|
# Top-level non-build files
|
||||||
|
README.md
|
||||||
|
docker-compose.yml
|
||||||
|
*.md
|
||||||
+11
-14
@@ -1,19 +1,16 @@
|
|||||||
# Multi-stage build для ordinis-app
|
# 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
|
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY pom.xml ./
|
COPY . ./
|
||||||
COPY ordinis-domain ./ordinis-domain
|
|
||||||
COPY ordinis-auth ./ordinis-auth
|
|
||||||
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-read-api ./ordinis-read-api
|
|
||||||
COPY ordinis-projection-writer ./ordinis-projection-writer
|
|
||||||
COPY ordinis-migrations ./ordinis-migrations
|
|
||||||
COPY ordinis-notifications ./ordinis-notifications
|
|
||||||
COPY ordinis-app ./ordinis-app
|
|
||||||
RUN mvn -B -pl ordinis-app -am package -DskipTests
|
RUN mvn -B -pl ordinis-app -am package -DskipTests
|
||||||
|
|
||||||
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
||||||
|
|||||||
@@ -1,18 +1,9 @@
|
|||||||
|
# Multi-stage build для ordinis-projection-writer. См. ordinis-app/Dockerfile
|
||||||
|
# для rationale `COPY . ./` + `.dockerignore` подхода (single-rule,
|
||||||
|
# future-proof на новые Maven modules).
|
||||||
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
|
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY pom.xml ./
|
COPY . ./
|
||||||
COPY ordinis-domain ./ordinis-domain
|
|
||||||
COPY ordinis-auth ./ordinis-auth
|
|
||||||
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-read-api ./ordinis-read-api
|
|
||||||
COPY ordinis-migrations ./ordinis-migrations
|
|
||||||
COPY ordinis-notifications ./ordinis-notifications
|
|
||||||
COPY ordinis-projection-writer ./ordinis-projection-writer
|
|
||||||
RUN mvn -B -pl ordinis-projection-writer -am package -DskipTests
|
RUN mvn -B -pl ordinis-projection-writer -am package -DskipTests
|
||||||
|
|
||||||
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
||||||
|
|||||||
@@ -1,18 +1,9 @@
|
|||||||
|
# Multi-stage build для ordinis-read-api. См. ordinis-app/Dockerfile для
|
||||||
|
# rationale `COPY . ./` + `.dockerignore` подхода (single-rule, future-proof
|
||||||
|
# на новые Maven modules).
|
||||||
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
|
FROM repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21 AS build
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY pom.xml ./
|
COPY . ./
|
||||||
COPY ordinis-domain ./ordinis-domain
|
|
||||||
COPY ordinis-auth ./ordinis-auth
|
|
||||||
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-notifications ./ordinis-notifications
|
|
||||||
COPY ordinis-read-api ./ordinis-read-api
|
|
||||||
RUN mvn -B -pl ordinis-read-api -am package -DskipTests
|
RUN mvn -B -pl ordinis-read-api -am package -DskipTests
|
||||||
|
|
||||||
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
||||||
|
|||||||
Reference in New Issue
Block a user