NitinBot002 commited on
Commit
e1fb4f8
·
verified ·
1 Parent(s): 8c6b4db

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +35 -18
Dockerfile CHANGED
@@ -1,25 +1,42 @@
1
- FROM gradle:8.14.2-jdk21-alpine AS build
2
- COPY --chown=gradle:gradle . /home/gradle/src
3
- WORKDIR /home/gradle/src
4
 
5
- RUN jlink \
6
- --verbose \
7
- --add-modules java.base,jdk.unsupported,java.desktop,java.instrument,java.logging,java.management,java.sql,java.xml \
8
- --compress 2 --strip-debug --no-header-files --no-man-pages \
9
- --output /opt/minimal-java
10
 
11
- RUN gradle build --no-daemon -x test
12
 
13
- FROM alpine:3
 
14
 
15
- ENV JAVA_HOME=/opt/minimal-java
16
- ENV PATH="$JAVA_HOME/bin:$PATH"
17
 
18
- ENV CONFIG_PATH="/config"
 
19
 
20
- RUN mkdir /app
21
- # Copy the custom minimal JRE from the builder stage
22
- COPY --from=build "$JAVA_HOME" "$JAVA_HOME"
23
- COPY --from=build /home/gradle/src/build/libs/ /app/
24
 
25
- ENTRYPOINT ["java","-jar", "/app/coral-server-1.0-SNAPSHOT.jar"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Stage 1: Clone and Build
2
+ FROM gradle:7.6.0-jdk17 AS builder
 
3
 
4
+ # Install git
5
+ RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
 
 
 
6
 
7
+ WORKDIR /app
8
 
9
+ # Clone the Coral Server repository
10
+ RUN git clone https://github.com/Coral-Protocol/coral-server.git .
11
 
12
+ # Build the application
13
+ RUN ./gradlew build --no-daemon
14
 
15
+ # Stage 2: Runtime
16
+ FROM eclipse-temurin:17-jre-alpine
17
 
18
+ # Install curl for health checks
19
+ RUN apk add --no-cache curl
 
 
20
 
21
+ WORKDIR /app
22
+
23
+ # Copy the built JAR and resources from builder stage
24
+ COPY --from=builder /app/build/libs/*.jar coral-server.jar
25
+ COPY --from=builder /app/src/main/resources /app/resources
26
+
27
+ # Create non-root user
28
+ RUN addgroup -g 1001 -S coral && \
29
+ adduser -u 1001 -S coral -G coral && \
30
+ chown -R coral:coral /app
31
+
32
+ USER coral
33
+
34
+ # Expose port
35
+ EXPOSE 5555
36
+
37
+ # Health check
38
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \
39
+ CMD curl -f http://localhost:5555/health || exit 1
40
+
41
+ # Run the server
42
+ ENTRYPOINT ["java", "-jar", "coral-server.jar", "--sse-server", "5555"]