diff --git a/.env b/.env
new file mode 100644
index 0000000..1be41c3
--- /dev/null
+++ b/.env
@@ -0,0 +1,8 @@
+MYSQLDB_USER=root
+MYSQLDB_ROOT_PASSWORD=Root123
+MYSQLDB_DATABASE=book-store
+MYSQLDB_LOCAL_PORT=5432
+MYSQLDB_DOCKER_PORT=3306
+SPRING_LOCAL_PORT=8081
+SPRING_DOCKER_PORT=8080
+DEBUG_PORT=5005
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ca17ae6
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,17 @@
+# Builder stage
+FROM openjdk:17-jdk-slim as builder
+WORKDIR /application
+ARG JAR_FILE=target/*.jar
+COPY ${JAR_FILE} application.jar
+RUN java -Djarmode=layertools -jar application.jar extract
+
+
+# Final stage
+FROM openjdk:17-jdk-slim
+WORKDIR /application
+COPY --from=builder application/dependencies/ ./
+COPY --from=builder application/spring-boot-loader/ ./
+COPY --from=builder application/snapshot-dependencies/ ./
+COPY --from=builder application/application/ ./
+ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]
+EXPOSE 8080
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..9a62e5f
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,40 @@
+version: "3.8"
+services:
+
+ mysqldb:
+ platform: linux/arm64
+ image: mysql:8.4.0
+ restart: unless-stopped
+ env_file: ./.env
+ ports:
+ - ${MYSQLDB_LOCAL_PORT}:${MYSQLDB_DOCKER_PORT}
+ environment:
+ MYSQL_ROOT_PASSWORD: $MYSQLDB_ROOT_PASSWORD
+ MYSQL_DATABASE: $MYSQLDB_DATABASE
+ healthcheck:
+ test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
+ interval: 30s
+ timeout: 30s
+ retries: 3
+ app:
+ image: book-store
+ depends_on:
+ mysqldb:
+ condition: service_healthy
+ restart: no
+ build: .
+ env_file: ./.env
+ ports:
+ - ${SPRING_LOCAL_PORT}:${SPRING_DOCKER_PORT}
+ - ${DEBUG_PORT}:${DEBUG_PORT}
+ environment:
+ - SPRING_DATASOURCE_URL=jdbc:mysql://mysqldb:$MYSQLDB_DOCKER_PORT/$MYSQLDB_DATABASE
+ - SPRING_DATASOURCE_USERNAME=$MYSQLDB_USER
+ - SPRING_DATASOURCE_PASSWORD=$MYSQLDB_ROOT_PASSWORD
+ - SPRING_JPA_HIBERNATE_DDL_AUTO=validate
+ - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 75144c1..4930538 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,6 +42,12 @@
test
+
+ org.springframework.boot
+ spring-boot-docker-compose
+ test
+
+
org.springframework.boot
spring-boot-starter-data-jpa
@@ -182,6 +188,11 @@
org.springframework.boot
spring-boot-maven-plugin
+
+
+ true
+
+
org.liquibase