mirror of
https://github.com/tiennm99/caro.git
synced 2026-05-14 02:57:42 +00:00
cbad690565
Phase 05 — sync infrastructure and documentation with the typed-protobuf refactor: - docker-compose.yml: drop 1024/1025 mappings, single "1999:1999" - server/Dockerfile: EXPOSE 1999, -p 1999 entrypoint - README.md: rewrite transport description, architecture diagram, protocol section, server options, project structure, add proto:gen script note - docs/project-overview.md: update transport + dependencies sections - docs/system-architecture.md: rewrite diagrams + pipeline + file inventory for the WebSocket-only typed-dispatch path - docs/codebase-summary.md: refresh file tree, java package inventory, gradle deps, vite deps, networking and game-flow sections - docs/deployment-guide.md: single-port walkthrough for local / docker / systemd / nginx; remove all 1024/1025 firewall and troubleshooting - docs/code-standards.md: replace dead ServerEventListener_CODE_* class-name example, fix sample ws:// URL to port 1999
28 lines
861 B
Docker
28 lines
861 B
Docker
# Build stage: compile standalone server jar with Gradle wrapper
|
|
FROM eclipse-temurin:25-jdk AS build
|
|
WORKDIR /build
|
|
|
|
# Copy wrapper + build scripts first for dependency caching
|
|
COPY server/gradlew server/gradlew
|
|
COPY server/gradle server/gradle
|
|
COPY server/settings.gradle.kts server/settings.gradle.kts
|
|
COPY server/build.gradle.kts server/build.gradle.kts
|
|
|
|
# Pre-fetch dependencies (cacheable layer)
|
|
RUN chmod +x server/gradlew && server/gradlew -p server --no-daemon dependencies
|
|
|
|
# Copy sources and build
|
|
COPY server/src server/src
|
|
RUN server/gradlew -p server --no-daemon clean shadowJar
|
|
|
|
# Runtime stage
|
|
FROM eclipse-temurin:25-jre-alpine
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /build/server/build/libs/caro-server-0.0.1.jar app.jar
|
|
|
|
# Single WebSocket port carrying typed protobuf binary frames
|
|
EXPOSE 1999
|
|
|
|
ENTRYPOINT ["java", "-jar", "app.jar", "-p", "1999"]
|