FROM ubuntu:20.04 AS builder

# Install build dependencies
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y \
        build-essential \
        ca-certificates \
        libsasl2-2 \
        libssl-dev \
        openssl \
        zlib1g-dev \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# Copy wrk2 sources and build 
COPY ./wrk2 /social-network-microservices/wrk2

RUN cd /social-network-microservices/wrk2 \
    && make -j$(nproc) \
    && make install

FROM ubuntu:20.04

# Copy compiled C++ binaries and wrk2/scripts
COPY --from=builder /usr/local/bin/* /usr/local/bin/
COPY ./datasets /social-network-microservices/datasets/
COPY ./scripts /social-network-microservices/scripts/
COPY ./wrk2/scripts /social-network-microservices/wrk2/scripts

# Install system dependencies
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y \
        ca-certificates \
        libsasl2-2 \
        lua-socket \
        openssl \
        python3-aiohttp \
        python3-minimal \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

ENV LUA_PATH="/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?;?.lua;?"
ENV LUA_CPATH="/usr/lib/x86_64-linux-gnu/lua/5.1/?.so;?.so"

WORKDIR /social-network-microservices
