FROM debian:bookworm-slim AS build

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential cmake git ca-certificates libcurl4-openssl-dev && \
      rm -rf /var/lib/apt/lists/*

  WORKDIR /src

  RUN git clone --depth 1 https://github.com/QW-Group/mvdsv.git && \            
      cd mvdsv && \                                                             
      cmake -B build -DCMAKE_BUILD_TYPE=Release . && \                          
      cmake --build build -j$(nproc)
  
  RUN git clone --depth 1 https://github.com/QW-Group/ktx.git && \              
      cd ktx && \                                                               
      cmake -B build -DCMAKE_BUILD_TYPE=Release -DBOT_SUPPORT=ON . && \         
      cmake --build build -j$(nproc)

  FROM debian:bookworm-slim

  RUN apt-get update && apt-get install -y --no-install-recommends \              
        libcurl4 ca-certificates && \                                           
      rm -rf /var/lib/apt/lists/* && \
      useradd -m -u 1000 qw                                                     
  
  WORKDIR /qw                                                                   
  COPY --from=build /src/mvdsv/build/mvdsv ./mvdsv                              
  COPY --from=build /src/ktx/build/qwprogs.so ./ktx/qwprogs.so                 
  COPY --from=build /src/ktx/resources/example-configs/ktx/bots ./ktx/bots      
  RUN mkdir -p id1 qw ktx demos logs && chown -R qw:qw /qw                    

  USER qw

  EXPOSE 27500/udp                      
  
  ENTRYPOINT ["./mvdsv", "-port", "27500", "-game", "ktx", "+set", "sv_progtype", "1", \ 
    "+set", "sv_progsname", "qwprogs", "+maxclients", "12", "+exec", "server.cfg"] 