diff options
| author | Szymon Szukalski <szymon@skas.io> | 2024-07-25 10:23:47 +1000 |
|---|---|---|
| committer | Szymon Szukalski <szymon@skas.io> | 2024-07-25 10:23:47 +1000 |
| commit | 7be6f97a98429485ff35b12798bdb8e7b8facf19 (patch) | |
| tree | a9f844c7658a68eb5316a8df1470a86d86a6473d | |
| parent | c459e7d5abd66d7bcf38e151aa2632fcb139f4f5 (diff) | |
Containerise application and switch to PostgreSQL
| -rw-r--r-- | Dockerfile | 15 | ||||
| -rw-r--r-- | docker-compose.yml | 27 | ||||
| -rw-r--r-- | src/main/resources/application.properties | 17 |
3 files changed, 51 insertions, 8 deletions
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 |
