Demonstrates the compose-as-source-of-truth path (ADR-026): import an existing docker-compose.yml into typed Scores, then build/publish/deploy with the fleet pattern (no ApplicationScore, no ArgoCD). - compose.rs: docker-compose-types → typed ComposeApp; loud on bind mounts / unparseable ports, warns on depends_on/command/restart. - chart.rs: per-service Deployment+Service (unique filenames), RWX PVC per mounted named volume, RollingUpdate/Recreate strategy. Deploy-only knobs live here, never in compose or Harmony.toml. - score.rs: ComposeAppScore = helm upgrade --install + public Ingress. - publish.rs: docker build/push each built service + helm package/push. - app/: minimal real Java(SQLite)+React(nginx) compose stack. - 16 unit tests over import + chart generation.
13 lines
269 B
Docker
13 lines
269 B
Docker
FROM maven:3-eclipse-temurin-21 AS build
|
|
WORKDIR /src
|
|
COPY pom.xml .
|
|
COPY src ./src
|
|
RUN mvn -q -B package
|
|
|
|
FROM eclipse-temurin:21-jre
|
|
WORKDIR /app
|
|
COPY --from=build /src/target/timesheet-backend.jar app.jar
|
|
EXPOSE 8080
|
|
USER 1000
|
|
ENTRYPOINT ["java", "-jar", "app.jar"]
|