chore(deployment): add deployment for backend
This commit is contained in:
parent
2cd1c6d8fd
commit
3113eee414
3 changed files with 35 additions and 1 deletions
32
backend/.docker/Dockerfile
Normal file
32
backend/.docker/Dockerfile
Normal file
|
@ -0,0 +1,32 @@
|
|||
# First stage: Build the application
|
||||
FROM gradle:jdk22 AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy only Gradle wrapper and configuration files first (for caching efficiency)
|
||||
COPY gradlew build.gradle.kts settings.gradle.kts ./
|
||||
COPY gradle gradle
|
||||
|
||||
# Give execute permissions to Gradle wrapper
|
||||
RUN chmod +x gradlew
|
||||
|
||||
# Download dependencies first (improves caching)
|
||||
RUN ./gradlew dependencies
|
||||
|
||||
# Copy the rest of the project files
|
||||
COPY src src
|
||||
|
||||
# Build the application (skipping tests for faster build)
|
||||
RUN ./gradlew clean build -x test
|
||||
|
||||
# Second stage: Run the application
|
||||
FROM openjdk:22-jdk-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the built JAR from the first stage
|
||||
COPY --from=builder /app/build/libs/*.jar app.jar
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
2
backend/.dockerignore
Normal file
2
backend/.dockerignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
.gradle
|
||||
build
|
|
@ -1,4 +1,4 @@
|
|||
spring.datasource.url=jdbc:postgresql://localhost:5432/postgresdb
|
||||
spring.datasource.url=jdbc:postgresql://$DB_HOST}:5432/postgresdb
|
||||
spring.datasource.username=postgres_user
|
||||
spring.datasource.password=postgres_pass
|
||||
server.port=8080
|
||||
|
|
Reference in a new issue