From 7be6f97a98429485ff35b12798bdb8e7b8facf19 Mon Sep 17 00:00:00 2001 From: Szymon Szukalski Date: Thu, 25 Jul 2024 10:23:47 +1000 Subject: Containerise application and switch to PostgreSQL --- Dockerfile | 15 +++++++++++++++ docker-compose.yml | 27 +++++++++++++++++++++++++++ src/main/resources/application.properties | 17 +++++++++-------- 3 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..63481f7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +# Stage 1: Build the JAR file +FROM maven:3.8.5-openjdk-17 AS build +WORKDIR /app +COPY mvnw pom.xml ./ +COPY .mvn .mvn +COPY src src +RUN chmod +x mvnw +RUN ./mvnw clean package -Dmaven.test.skip=true + +# Stage 2: Run the JAR file +FROM openjdk:17-alpine +RUN addgroup -S spring && adduser -S spring -G spring +USER spring:spring +COPY --from=build /app/target/markr-0.0.1-SNAPSHOT.jar /markr.jar +ENTRYPOINT ["java", "-jar", "/markr.jar"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0f45dc0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,27 @@ +services: + postgres: + image: postgres:latest + container_name: postgres + environment: + POSTGRES_USER: markr_prod + POSTGRES_PASSWORD: CpfzDA3nR3jH9Ky4 + POSTGRES_DB: markr + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + + markr_service: + build: . + container_name: markr_service + ports: + - "8080:8080" + depends_on: + - postgres + environment: + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/markr + SPRING_DATASOURCE_USERNAME: markr_prod + SPRING_DATASOURCE_PASSWORD: CpfzDA3nR3jH9Ky4 + +volumes: + postgres_data: diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 788b1a5..42e8f9a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,11 +1,12 @@ spring.application.name=markr -# H2 Database configuration -spring.datasource.url=jdbc:h2:mem:testdb -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.username=sa -spring.datasource.password=password -spring.jpa.database-platform=org.hibernate.dialect.H2Dialect -spring.h2.console.enabled=true -spring.h2.console.path=/h2-console +# PostgreSQL Configuration +spring.datasource.url=jdbc:postgresql://localhost:5432/markr +spring.datasource.username=markr_prod +spring.datasource.password=CpfzDA3nR3jH9Ky4 +spring.datasource.driver-class-name=org.postgresql.Driver + +# Hibernate Configuration +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=false \ No newline at end of file -- cgit v1.2.3