Phoenix21 commited on
Commit
73d93af
·
verified ·
1 Parent(s): a321c65

🐳 Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +5 -58
Dockerfile CHANGED
@@ -1,69 +1,16 @@
1
- # Dockerfile for LocalLend - Spring Boot with Static HTML/CSS/JS Frontend
2
- # This builds a single JAR with embedded static frontend resources
3
-
4
- # ============================================
5
- # Stage 1: Build Spring Boot Application
6
- # ============================================
7
- FROM maven:3.9-eclipse-temurin-17 AS backend-builder
8
-
9
- WORKDIR /app
10
-
11
- # Copy backend pom.xml
12
- COPY backend/pom.xml ./
13
-
14
- # Download dependencies for caching
15
- RUN mvn dependency:go-offline -B || true
16
-
17
- # Copy backend source (which includes static resources in src/main/resources/static/)
18
- COPY backend/src ./src
19
-
20
- # Build backend with static resources included
21
- RUN mvn clean package -DskipTests
22
-
23
- # ============================================
24
- # Stage 2: Production Runtime
25
- # ============================================
26
- FROM eclipse-temurin:17-jre-jammy
27
 
28
  WORKDIR /app
29
 
30
- # Install utilities for debugging
31
- RUN apt-get update && \
32
- apt-get install -y curl netcat-openbsd net-tools && \
33
- rm -rf /var/lib/apt/lists/*
34
-
35
- # Copy the backend JAR (contains static resources)
36
- COPY --from=backend-builder /app/target/*.jar /app/backend.jar
37
 
38
  # Expose port 7860 (required by Hugging Face Spaces)
39
  EXPOSE 7860
40
 
41
- # Create startup script
42
- RUN echo '#!/bin/bash' > /app/startup.sh && \
43
- echo 'echo "===== Application Startup at $(date) ====="' >> /app/startup.sh && \
44
- echo 'echo ""' >> /app/startup.sh && \
45
- echo 'echo "=== Starting LocalLend Application ==="' >> /app/startup.sh && \
46
- echo 'echo "=== Diagnostic Information ==="' >> /app/startup.sh && \
47
- echo 'echo "Hostname: $(hostname)"' >> /app/startup.sh && \
48
- echo 'echo "IP Address: $(hostname -I)"' >> /app/startup.sh && \
49
- echo 'echo ""' >> /app/startup.sh && \
50
- echo 'echo "=== Static Resources Check ==="' >> /app/startup.sh && \
51
- echo 'if [ -f /app/backend.jar ]; then' >> /app/startup.sh && \
52
- echo ' echo "JAR file exists"' >> /app/startup.sh && \
53
- echo ' unzip -l /app/backend.jar | grep "BOOT-INF/classes/static/" | head -10 || echo "No static resources found in JAR"' >> /app/startup.sh && \
54
- echo 'fi' >> /app/startup.sh && \
55
- echo 'echo ""' >> /app/startup.sh && \
56
- echo 'echo "=== Starting Spring Boot on 0.0.0.0:7860 ==="' >> /app/startup.sh && \
57
- echo 'echo ""' >> /app/startup.sh && \
58
- echo 'exec java -Dserver.address=0.0.0.0 \\' >> /app/startup.sh && \
59
- echo ' -Dserver.port=7860 \\' >> /app/startup.sh && \
60
- echo ' -Dspring.profiles.active=prod \\' >> /app/startup.sh && \
61
- echo ' -jar /app/backend.jar' >> /app/startup.sh && \
62
- chmod +x /app/startup.sh
63
-
64
  # Set environment variables
65
  ENV SERVER_PORT=7860
66
  ENV SPRING_PROFILES_ACTIVE=prod
67
 
68
- # Start Spring Boot with embedded static resources
69
- CMD ["/app/startup.sh"]
 
1
+ FROM openjdk:17-jdk-slim
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  WORKDIR /app
4
 
5
+ # Copy the jar file (built in GitHub Actions)
6
+ COPY target/*.jar app.jar
 
 
 
 
 
7
 
8
  # Expose port 7860 (required by Hugging Face Spaces)
9
  EXPOSE 7860
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  # Set environment variables
12
  ENV SERVER_PORT=7860
13
  ENV SPRING_PROFILES_ACTIVE=prod
14
 
15
+ # Run the application
16
+ ENTRYPOINT ["java", "-Dserver.address=0.0.0.0", "-Dserver.port=7860", "-jar", "/app/app.jar"]