FROM node:alpine AS build
WORKDIR /build/alpine

RUN apk update --no-cache  && apk upgrade --no-cache
RUN apk add --no-cache cmake ninja clang alpine-sdk lua-aports sudo openssh-keygen fakeroot openssh-client yaml-dev brotli-dev json-c-dev util-linux-dev ffmpeg-dev

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git
RUN mkdir libcmdplus/build
RUN cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git
RUN mkdir uuidplus/build
RUN cd uuidplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git
RUN mkdir libnetplus/build
RUN cd libnetplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git
RUN mkdir libhtmlpp/build
RUN cd libhtmlpp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git
RUN mkdir libhttppp/build
RUN cd libhttppp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git
RUN mkdir libconfplus/build
RUN cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git
RUN mkdir libparitypp/build
RUN cd libparitypp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/authdb.git
RUN mkdir authdb/build
RUN cd authdb/build && cmake ../ -G Ninja -DDATAPATH:PATH=/usr/local/share/authdb && ninja install

RUN git clone https://tuxist.de/git/tuxist/mediadb.git
RUN mkdir mediadb/build
RUN cd mediadb/build && cmake ../ -G Ninja && ninja install

USER root
FROM node:alpine
RUN addgroup mediadb --system
RUN adduser mediadb -h /var/lib/mediadb -S -G mediadb
RUN apk update && apk upgrade
RUN apk add --no-cache yaml brotli openssl json-c libuuid libstdc++ ffmpeg
RUN mkdir /etc/mediadb

COPY --from=build /usr/local/bin /usr/local/bin
COPY --from=build /usr/local/lib /usr/local/lib
COPY --from=build /usr/local/share /usr/local/share

COPY docker-config.yaml /etc/mediadb/config.yaml

CMD ["mediadb","-f","true","-c","yaml://etc/mediadb/config.yaml"]
