FROM ubuntu:22.04

ARG DEBIAN_FRONTEND=noninteractive
ARG GATK_VER="4.6.2.0"
ARG BEAGLE_JAR_URL="https://faculty.washington.edu/browning/beagle/beagle.28Jun21.220.jar"

RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates curl wget unzip git \
    tabix bcftools plink \
    python3 python3-pip python3-venv \
    openjdk-17-jre-headless \
    bwa samtools fastp \
    libgomp1 \
 && ln -sf /usr/bin/python3 /usr/local/bin/python \
 && rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --no-cache-dir -U pip setuptools wheel

WORKDIR /opt

RUN mkdir -p /opt/gatk \
    && wget -O /opt/gatk/gatk-${GATK_VER}.zip \
        https://github.com/broadinstitute/gatk/releases/download/${GATK_VER}/gatk-${GATK_VER}.zip \
    && unzip /opt/gatk/gatk-${GATK_VER}.zip -d /opt/gatk \
    && rm -f /opt/gatk/gatk-${GATK_VER}.zip

RUN mkdir -p /opt/beagle \
    && wget -O /opt/beagle/beagle.jar "${BEAGLE_JAR_URL}" \
    && printf '%s\n' '#!/usr/bin/env bash' \
       'exec java -jar /opt/beagle/beagle.jar "$@"' \
       > /usr/local/bin/beagle \
    && chmod +x /usr/local/bin/beagle

ENV PATH="/opt/gatk/gatk-${GATK_VER}:$PATH" \
    GATK_LOCAL_JAR="/opt/gatk/gatk-${GATK_VER}/gatk-package-${GATK_VER}-local.jar" \
    MALLOC_ARENA_MAX=2 \
    JAVA_TOOL_OPTIONS="-Djava.io.tmpdir=/tmp"

WORKDIR /work

CMD ["/bin/bash"]
