diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..5ef502a
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,36 @@
+HELP.md
+.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+
+.env
+
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 516844f..220f6bc 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -1,8 +1,35 @@
-FROM maven:3-eclipse-temurin-21
+FROM eclipse-temurin:21-jdk-jammy
RUN apt-get update && \
- apt-get install -y ffmpeg && \
+ apt-get install -y --no-install-recommends \
+ curl \
+ vim \
+ git \
+ ca-certificates \
+ ffmpeg && \
rm -rf /var/lib/apt/lists/*
+# Create non-root user
+RUN groupadd --gid 1000 spring-app && \
+ useradd --uid 1000 --gid spring-app --shell /bin/bash --create-home spring-app
+
+RUN mkdir -p /home/spring-app/.m2 && \
+ chown -R spring-app:spring-app /home/spring-app/.m2
+
WORKDIR /app
+COPY mvnw .
+COPY .mvn .mvn
+COPY pom.xml .
+COPY target target
+
+RUN chmod +x mvnw && \
+ chown -R spring-app:spring-app /app
+
+USER spring-app:spring-app
+
+COPY src ./src
+
+EXPOSE 8080
+
+ENTRYPOINT ["./mvnw", "spring-boot:run"]
diff --git a/compose.yml b/compose.yml
index 5f30956..5fe1629 100644
--- a/compose.yml
+++ b/compose.yml
@@ -1,4 +1,17 @@
services:
+ hls-proxy:
+ build:
+ context: .
+ dockerfile: Dockerfile.dev
+ env_file: .env
+ ports:
+ - 8080:8080
+ networks:
+ - mp3_composer
+ volumes:
+ - .:/app
+ - maven-repo:/home/spring-app/.m2/
+
s3:
image: minio/minio:latest
container_name: composer_s3
@@ -6,7 +19,7 @@ services:
networks:
- mp3_composer
ports:
- - 9001:9001
+ - 0:9001
postgres:
image: postgres:alpine
container_name: composer_postgres
@@ -39,6 +52,9 @@ services:
networks:
- mp3_composer
+volumes:
+ maven-repo:
+
networks:
mp3_composer:
external: true
diff --git a/pom.xml b/pom.xml
index c58dd27..c0ec893 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,6 +122,12 @@
postgresql
runtime
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
org.springframework.boot
spring-boot-starter-test
diff --git a/src/test/resources/application-test.yml b/src/test/resources/application-test.yml
new file mode 100644
index 0000000..7fa6b59
--- /dev/null
+++ b/src/test/resources/application-test.yml
@@ -0,0 +1,3 @@
+spring:
+ flyway:
+ enabled: false