diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..7b4e28e
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,35 @@
+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
new file mode 100644
index 0000000..220f6bc
--- /dev/null
+++ b/Dockerfile.dev
@@ -0,0 +1,35 @@
+FROM eclipse-temurin:21-jdk-jammy
+
+RUN apt-get update && \
+ 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/Dockerfile.prod b/Dockerfile.prod
index 9a45fda..c48ab31 100644
--- a/Dockerfile.prod
+++ b/Dockerfile.prod
@@ -35,8 +35,7 @@ RUN groupadd --gid 1000 spring-app \
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
- ffmpeg && \
- rm -rf /var/lib/apt/lists/*
+ ffmpeg
USER spring-app:spring-app
WORKDIR /opt/workspace
diff --git a/compose.yml b/compose.yml
index 03059da..1601d38 100644
--- a/compose.yml
+++ b/compose.yml
@@ -5,13 +5,21 @@ services:
- anyame-shared
hls-proxy:
- image: hls-proxy:latest
+ build:
+ context: .
+ dockerfile: Dockerfile.dev
env_file: .env
ports:
- 8082:8080
networks:
- anyame-shared
- elk-network
+ volumes:
+ - .:/app
+ - maven-repo:/home/spring-app/.m2/
+
+volumes:
+ maven-repo:
networks:
anyame-shared:
diff --git a/pom.xml b/pom.xml
index 6fa890c..d757a37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,11 @@
0.8.0
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
org.springframework.boot
spring-boot-starter-test