Files
tiennm99 cbad690565 docs,chore: single-port 1999 websocket protobuf
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
2026-04-11 08:33:46 +07:00

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"]