FROM debian:bullseye-slim AS builder
RUN apt-get -y update \
      && apt-get -y --no-install-recommends install \
            cmake                           \
            pkg-config                      \
            build-essential                 \
            libssl-dev                      \
            libev-dev                       \
            libuv1-dev                      \
            libpq-dev                       \
            postgresql-server-dev-13        \
            libboost-system-dev             \
            libboost-thread-dev             \
            libboost-program-options-dev    \
            libboost-filesystem-dev         \
            libboost-chrono-dev             \
            libboost-date-time-dev          \
            libboost-test-dev               \
            libgrpc++-dev                   \
            libprotobuf-dev                 \
            nlohmann-json3-dev              \
            protobuf-compiler               \
            protobuf-compiler-grpc          \
      && apt-get -y clean                   \
      && rm -rf /var/lib/apt/lists/*
WORKDIR /app_src
COPY . .
WORKDIR /app_build
RUN ["/bin/bash", "-c", "set -o pipefail && cmake /app_src && make -j $(($(grep -c processor /proc/cpuinfo) / 2 + 1)) 2> >(tee make.error >&2)"]


FROM debian:bullseye-slim
RUN apt-get -y update \
      && apt-get -y --no-install-recommends install \
            libssl1.1                       \
            libev4                          \
            libuv1                          \
            libpq5                          \
            libboost-system1.74.0           \
            libboost-thread1.74.0           \
            libboost-program-options1.74.0  \
            libboost-filesystem1.74.0       \
            libboost-chrono1.74.0           \
            libboost-date-time1.74.0        \
            libboost-test1.74.0             \
            libgrpc++1                      \
            libprotobuf23                   \
      && apt-get -y clean                   \
      && rm -rf /var/lib/apt/lists/*

COPY --from=builder /app_build/make.error /app_build/make.error
COPY --from=builder /app_build/bin/cdnskey-processor-master /usr/bin/cdnskey-processor-master
COPY --from=builder /app_build/bin/cdnskey-processor-worker /usr/bin/cdnskey-processor-worker
COPY --from=builder /app_build/bin/cdnskey-processor-api /usr/bin/cdnskey-processor-api
