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
|
||||
WORKDIR /build
|
||||
COPY pom.xml ./
|
||||
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
|
||||
COPY . ./
|
||||
RUN mvn -B -pl ordinis-app -am package -DskipTests
|
||||
|
||||
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
|
||||
WORKDIR /build
|
||||
COPY pom.xml ./
|
||||
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
|
||||
COPY . ./
|
||||
RUN mvn -B -pl ordinis-projection-writer -am package -DskipTests
|
||||
|
||||
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
|
||||
WORKDIR /build
|
||||
COPY pom.xml ./
|
||||
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
|
||||
COPY . ./
|
||||
RUN mvn -B -pl ordinis-read-api -am package -DskipTests
|
||||
|
||||
FROM repo.nstart.cloud/library/eclipse-temurin:21-jre
|
||||
|
||||
Reference in New Issue
Block a user