diff --git a/.gitignore b/.gitignore index d2767ad28..4666ffe3a 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ out/ _site/ *.css !petclinic.css +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..3905813a5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM maven:3.9.9-eclipse-temurin-17-alpine AS builder + +WORKDIR /petclinic-app +COPY pom.xml ./ + +RUN mvn dependency:go-offline -B + +COPY src/ ./src/ +RUN mvn clean package -DskipTests + +FROM eclipse-temurin:17-jdk-alpine AS jre-builder +WORKDIR /app + +COPY --from=builder /petclinic-app/target/*.jar /app/petclinic.jar + +EXPOSE 8080 + +CMD [ "java", "-jar", "/app/petclinic.jar" ] + +# ||| potential upgrade: +# adding user +# .dockerignore don't need -> COPY only what needed +# mount .m2 repository + + diff --git a/Simple_Dockerfile b/Simple_Dockerfile new file mode 100644 index 000000000..4faad69f6 --- /dev/null +++ b/Simple_Dockerfile @@ -0,0 +1,10 @@ +FROM eclipse-temurin:17-jre-alpine AS jre-builder + +WORKDIR /petclinic-app + +ARG JAR_FILE=target/*.jar +COPY ${JAR_FILE} /petclinic-app/spring-app.jar + +EXPOSE 8080 + +CMD ["java", "-jar", "/petclinic-app/spring-app.jar"] \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 000000000..459c0fe86 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,41 @@ +services: + petclinic-db: + image: postgres:14-alpine + ports: + - 5432:5432 + volumes: + - postgres-data:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_DB=${POSTGRES_DB} + networks: + - petclinic-network + profiles: + - postgres + + petclinic-web-app: + image: spring-petclinic:build-4.0.1-SNAPSHOT + depends_on: + - petclinic-db + environment: + - SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL} + - SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME} + - SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD} + - SPRING_PROFILES_ACTIVE=postgres + deploy: + replicas: 1 + ports: + - "8080:8080" + networks: + - petclinic-network + profiles: + - postgres + +volumes: + postgres-data: + driver: local + +networks: + petclinic-network: + driver: bridge diff --git a/docker-compose.yml b/k8s/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to k8s/docker-compose.yml