Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion backend/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM gradle:8.12-jdk21 AS build
WORKDIR /app
ENV HOME /root
COPY . .
RUN chmod +x ./gradlew
CMD ["./gradlew", "bootRun"]
RUN chmod +x start.sh && ./gradlew getDependencies
CMD ["sh", "start.sh"]
19 changes: 18 additions & 1 deletion backend/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ repositories {
}

dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.springframework.boot:spring-boot-starter-web")
Expand All @@ -29,4 +30,20 @@ kotlin {
compilerOptions {
freeCompilerArgs.addAll("-Xjsr305=strict")
}
}
}

tasks.register<Copy>("getDependencies") {
from(sourceSets.main.get().runtimeClasspath)
into("runtime/")

doFirst {
val runtimeDir = File("runtime")
runtimeDir.deleteRecursively()
runtimeDir.mkdir()
}

doLast {
File("runtime").deleteRecursively()
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ class HelloController(
throw e
}
}
}
}
11 changes: 10 additions & 1 deletion backend/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,13 @@ logging:
io.lettuce.core: DEBUG

server:
port: 8080
port: 8080

devtools:
restart:
enabled: true

# Enable LiveReload if needed
spring.devtools.livereload.enabled: true

spring.devtools.reload.trigger-file: .reloadtrigger
6 changes: 6 additions & 0 deletions backend/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Start spring boot devtools process in the background.
# This is necessary for hot reload.
(./gradlew -t :bootJar) &
# Next, start the app.
# The "PskipDownload" option ensures dependencies are not downloaded again.
./gradlew bootRun -PskipDownload=true --parallel --build-cache --continuous
13 changes: 10 additions & 3 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
version: '3.8'

services:
redis:
image: redis:alpine
Expand All @@ -12,9 +10,18 @@ services:
build:
context: ./backend
dockerfile: Dockerfile.dev
develop:
watch:
- action: rebuild
path: ./backend/src # Watch the entire src directory
volumes:
- ./backend:/app
ports:
- "35729:35729"
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DEVTOOLS_RESTART_ENABLED=true
- REDIS_HOST=redis
- REDIS_PORT=6379
networks:
Expand All @@ -38,4 +45,4 @@ services:

networks:
mploy-network:
driver: bridge
driver: bridge
Loading