# syntax=docker/dockerfile:1

# ---------------------------------------------------------------------------
# Builder
# ---------------------------------------------------------------------------
FROM debian:bookworm-slim AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
        cmake \
        g++ \
        make \
        libmariadb-dev \
        pkg-config \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY CMakeLists.txt ./
COPY Src ./Src

RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
    && cmake --build build -j"$(nproc)"

# ---------------------------------------------------------------------------
# Runtime
# ---------------------------------------------------------------------------
FROM debian:bookworm-slim AS runtime

RUN apt-get update && apt-get install -y --no-install-recommends \
        libmariadb3 \
        gettext-base \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /src/build/loginserver /app/bin/loginserver
COPY --from=builder /src/build/charserver /app/bin/charserver
COPY --from=builder /src/build/worldserver /app/bin/worldserver
COPY docker/conf/ /app/conf-templates/
COPY docker/entrypoint.sh /app/entrypoint.sh
COPY Binary/clanmark/ /app/seed/clanmark/

RUN chmod +x /app/entrypoint.sh && mkdir -p /data /var/log/roseserver

WORKDIR /data
VOLUME ["/data", "/var/log/roseserver"]

ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["world"]
