FROM ubuntu:24.04

# Install build deps
RUN apt-get update && apt-get install -y \
    build-essential cmake pkg-config \
    libuv1-dev libssl-dev \
    libodbc2 unixodbc-dev \
    libvips-dev \
    curl gnupg2 gdbserver \
    && rm -rf /var/lib/apt/lists/*

# Install Microsoft ODBC Driver 18
RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
    && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/24.04/prod noble main" > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update \
    && ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18 \
    && rm -rf /var/lib/apt/lists/*

# Copy source
WORKDIR /build
COPY CMakeLists.txt .
COPY vendor/ vendor/
COPY src/ src/

# Build (default Debug for gdb, override with --build-arg CMAKE_BUILD_TYPE=Release)
ARG CMAKE_BUILD_TYPE=Debug
RUN mkdir -p build && cd build \
    && cmake .. -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
    && cmake --build . -j$(nproc) \
    && cp jtlsrv /usr/local/bin/

# Copy certs and env
WORKDIR /app
COPY certs/ certs/
COPY .env.docker .env

EXPOSE 4443

CMD ["jtlsrv"]
