# syntax=docker/dockerfile:1.7-labs
FROM drogonframework/drogon:latest@sha256:8375b3f136fc875882a781b6d87390378b1a13b1399c79a621274b34a4134ad3

RUN apt-get update && \
    apt-get install -y \
        clang \
        ladspa-sdk \
        freeglut3-dev \
        g++ \
        libasound2-dev \
        libcurl4-openssl-dev \
        libfreetype6-dev \
        libjack-jackd2-dev \
        libx11-dev \
        libxcomposite-dev \
        mesa-common-dev \
        webkit2gtk-4.0 && \
    rm -rf /var/lib/apt/lists/*

RUN useradd --no-create-home juice

WORKDIR /app/
COPY --exclude=.vscode/ --exclude=build/ --exclude=uploads/ ./ /app/

RUN mkdir build && cd build && cmake .. -D CMAKE_BUILD_TYPE=Release && make -j4 && \
    cd .. && cp build/webserver . && rm -rf build/ src/ CMakeLists.txt

RUN find /app -type d -exec chmod 555 {} \; && \
    find /app -type f -exec chmod 444 {} \; && \
    chmod 777 /app/views/d/ && \
    mkdir /app/uploads && chmod 777 /app/uploads && \
    chmod 555 /app/webserver

USER juice
EXPOSE 8080
CMD ["./webserver"]