FROM python:3.12.3-bullseye

ENV DEBIAN_FRONTEND="noninteractive"
ENV BCFTOOLS_VERSION="1.20"

RUN apt-get -y update \
    && apt-get -y dist-upgrade \
    && apt-get -y install --no-install-recommends --no-install-suggests \
        autoconf ca-certificates curl gcc libbz2-dev libcurl4-gnutls-dev \
        libgsl-dev liblzma-dev libperl-dev libssl-dev libz-dev make perl \
        pkg-config lbzip2 \
    && apt-get -y autoremove \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN curl -SL \
        https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VERSION}/bcftools-${BCFTOOLS_VERSION}.tar.bz2 \
        -o /tmp/bcftools.tar.bz2 \
    && tar xvf /tmp/bcftools.tar.bz2 -C /usr/local/src --remove-files \
    && mv /usr/local/src/bcftools-* /usr/local/src/bcftools \
    && cd /usr/local/src/bcftools/htslib-* \
    && autoheader \
    && autoconf \
    && ./configure \
    && make \
    && make install \
    && cd .. \
    && autoheader \
    && autoconf \
    && ./configure --enable-libgsl --enable-perl-filters \
    && make \
    && make install

ENV BCFTOOLS_PLUGINS="/usr/local/src/bcftools/plugins"

ENV PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=on \
    PIP_DEFAULT_TIMEOUT=100 \
    PYTHONPATH=/app \
    UV_VENV=/app/.venv

ENV PATH="$UV_VENV/bin:$PATH"

WORKDIR /${PYTHONPATH}

RUN pip install uv

COPY pyproject.toml uv.lock README.md ./
COPY vcf_to_duckdb/__init__.py ./vcf_to_duckdb/__init__.py
RUN uv sync --no-cache --no-group=dev

COPY vcf_to_duckdb ./vcf_to_duckdb
COPY config.json ./config.json

ENTRYPOINT ["/bin/bash"]
