Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
modules/webapp/src/main/angular/node_modules
modules/webapp/src/main/angular/dist
modules/webapp/src/main/angular/node
modules/webapp/src/main/angular/.angular
13 changes: 13 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
services:
restapi:
build:
context: .
dockerfile: modules/rest-api/Dockerfile
ports:
- "8080:8080"
webapp:
build:
context: .
dockerfile: modules/webapp/Dockerfile
ports:
- "8081:8081"
42 changes: 42 additions & 0 deletions k8s-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: json-schema-podo-generator
labels:
app: json-schema-podo-generator
spec:
replicas: 1
selector:
matchLabels:
app: json-schema-podo-generator
template:
metadata:
labels:
app: json-schema-podo-generator
spec:
containers:
- name: jspg-restapi
image: spatacean.com/jspg/rest-api:k8s-test
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
- name: jspg-webapp
image: spatacean.com/jspg/webapp:k8s-test
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8081
---
apiVersion: v1
kind: Service
metadata:
name: json-schema-podo-generator
labels:
app: json-schema-podo-generator
spec:
selector:
app: json-schema-podo-generator
ports:
- port: 8081
targetPort: 8081
nodePort: 30081
type: NodePort
29 changes: 29 additions & 0 deletions modules/cli-wrapper/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM maven:3.9.9-eclipse-temurin-21 AS dependencies
WORKDIR /app
COPY pom.xml .
COPY modules/cli-wrapper/pom.xml modules/cli-wrapper/pom.xml
COPY modules/core/pom.xml modules/core/pom.xml
COPY modules/rest-api/pom.xml modules/rest-api/pom.xml
COPY modules/webapp/pom.xml modules/webapp/pom.xml

RUN mvn dependency:go-offline -B -e -DskipTests -DexcludeArtifactsIds=podo-generator-core

FROM maven:3.9.9-eclipse-temurin-21 AS builder
LABEL authors="gpspatacean"

WORKDIR /app
COPY --from=dependencies /root/.m2 /root/.m2
COPY pom.xml .
COPY modules modules

RUN mvn clean package -pl modules/cli-wrapper -am -B -e -DskipTests

FROM eclipse-temurin:21-jre
WORKDIR /app

RUN useradd -m -s /usr/sbin/nologin appuser
USER appuser

COPY --from=builder /app/modules/cli-wrapper/target/*.jar /app/app.jar

ENTRYPOINT ["java", "-jar", "/app/app.jar"]
31 changes: 31 additions & 0 deletions modules/rest-api/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM maven:3.9.9-eclipse-temurin-21 AS dependencies
WORKDIR /app
COPY pom.xml .
COPY modules/cli-wrapper/pom.xml modules/cli-wrapper/pom.xml
COPY modules/core/pom.xml modules/core/pom.xml
COPY modules/rest-api/pom.xml modules/rest-api/pom.xml
COPY modules/webapp/pom.xml modules/webapp/pom.xml

RUN mvn dependency:go-offline -B -e -DskipTests -DexcludeArtifactsIds=podo-generator-core

FROM maven:3.9.9-eclipse-temurin-21 AS builder
LABEL authors="gpspatacean"

WORKDIR /app
COPY --from=dependencies /root/.m2 /root/.m2
COPY pom.xml .
COPY modules modules

RUN mvn clean package -pl modules/rest-api -am -B -e -DskipTests

FROM eclipse-temurin:21-jre
WORKDIR /app

RUN useradd -m -s /usr/sbin/nologin appuser
USER appuser

COPY --from=builder /app/modules/rest-api/target/*.jar /app/app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/app/app.jar"]
4 changes: 4 additions & 0 deletions modules/webapp/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
src/main/angular/node_modules
src/main/angular/dist
src/main/angular/node
src/main/angular/.angular
31 changes: 31 additions & 0 deletions modules/webapp/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM maven:3.9.9-eclipse-temurin-21 AS dependencies
WORKDIR /app
COPY pom.xml .
COPY modules/cli-wrapper/pom.xml modules/cli-wrapper/pom.xml
COPY modules/core/pom.xml modules/core/pom.xml
COPY modules/rest-api/pom.xml modules/rest-api/pom.xml
COPY modules/webapp/pom.xml modules/webapp/pom.xml

RUN mvn dependency:go-offline -B -e -DskipTests -DexcludeArtifactsIds=podo-generator-core

FROM maven:3.9.9-eclipse-temurin-21 AS builder
LABEL authors="gpspatacean"

WORKDIR /app
COPY --from=dependencies /root/.m2 /root/.m2
COPY pom.xml .
COPY modules modules

RUN mvn clean package -pl modules/webapp -am -B -e -DskipTests

FROM eclipse-temurin:21-jre
WORKDIR /app

RUN useradd -m -s /usr/sbin/nologin appuser
USER appuser

COPY --from=builder /app/modules/webapp/target/*.jar /app/app.jar

EXPOSE 8081

ENTRYPOINT ["java", "-jar", "/app/app.jar"]