Spaces:
Build error
Build error
Update Dockerfile
Browse files- Dockerfile +35 -18
Dockerfile
CHANGED
|
@@ -1,25 +1,42 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
WORKDIR /home/gradle/src
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 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 |
-
|
| 12 |
|
| 13 |
-
|
|
|
|
| 14 |
|
| 15 |
-
|
| 16 |
-
|
| 17 |
|
| 18 |
-
|
|
|
|
| 19 |
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
COPY --from=build "$JAVA_HOME" "$JAVA_HOME"
|
| 23 |
-
COPY --from=build /home/gradle/src/build/libs/ /app/
|
| 24 |
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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"]
|