FROM ubuntu:24.04

ARG IMAGE_CREATED="unknown"
ARG IMAGE_REVISION="unknown"
ARG IMAGE_VERSION="dev"
ARG IMAGE_SOURCE="https://github.com/ovh/game-panel"

LABEL org.opencontainers.image.title="Minecraft Bedrock Edition Server Image" \
      org.opencontainers.image.description="Game Panel image for Minecraft Bedrock Edition servers." \
      org.opencontainers.image.created="${IMAGE_CREATED}" \
      org.opencontainers.image.revision="${IMAGE_REVISION}" \
      org.opencontainers.image.version="${IMAGE_VERSION}" \
      org.opencontainers.image.source="${IMAGE_SOURCE}" \
      org.opencontainers.image.vendor="OVHcloud" \
      org.opencontainers.image.licenses="Apache-2.0" \
      org.opencontainers.image.base.name="ubuntu:24.04"

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \
      ca-certificates \
      curl \
      jq \
      libcurl4t64 \
      libssl3t64 \
      tar \
      unzip \
      && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY docker-entrypoint.sh /app/docker-entrypoint.sh
COPY common.sh /app/common.sh
COPY launcher.sh /app/launcher.sh
COPY send-command.sh /app/send-command.sh
COPY backup.sh /app/backup.sh
COPY restore.sh /app/restore.sh
COPY healthcheck.sh /app/healthcheck.sh

RUN chmod 0555 /app/*.sh \
      && groupadd --gid 10001 gameserver \
      && useradd --uid 10001 --gid gameserver --create-home --home-dir /home/gameserver --shell /usr/sbin/nologin gameserver \
      && mkdir -p /run/minecraft-bedrock /data /backups \
      && chown -R gameserver:gameserver /run/minecraft-bedrock /data /backups /home/gameserver

ENV HOME=/home/gameserver
ENV GAMESERVER_SERVER_TYPE=bedrock

EXPOSE 19132/udp
EXPOSE 19133/udp

USER gameserver:gameserver

HEALTHCHECK --interval=10s --timeout=3s --start-period=60s --retries=3 CMD ["/app/healthcheck.sh"]

ENTRYPOINT ["/app/docker-entrypoint.sh"]
