FROM ubuntu:22.04 AS builder

RUN apt-get update && \
    apt-get install -y software-properties-common git curl unzip build-essential && \
    add-apt-repository -y ppa:xmake-io/xmake && \
    apt-get update && \
    apt-get install -y xmake && \
    xmake --version --root

WORKDIR /src
COPY . .

RUN xmake b -vy --root crossdesk_server && \
    mkdir -p /output && \
    cp build/linux/x86_64/release/crossdesk_server /output/


FROM crossdesk/crossdesk-server-base:latest

RUN mkdir -p /opt/turnserver && \
    cd /opt/turnserver && \
    openssl genrsa -out turn_server_pkey.pem 2048 && \
    openssl req -x509 -new -nodes \
      -key turn_server_pkey.pem \
      -sha256 -days 3650 \
      -subj "/C=CN/ST=Beijing/L=Beijing/O=SelfSigned/OU=IT/CN=coturn.local" \
      -out turn_server_cert.pem && \
    chmod 600 /opt/turnserver/turn_server_pkey.pem


COPY docker/start.sh /start.sh
COPY --from=builder /output/crossdesk_server /crossdesk-server/crossdesk_server

RUN chmod +x /start.sh /crossdesk-server/crossdesk_server

ENTRYPOINT ["/start.sh"]
