# syntax = docker/dockerfile:1.5

FROM pytorch/pytorch:2.0.0-cuda11.7-cudnn8-runtime

# Install utilities
RUN <<EOF
  apt-get -y update
  apt-get -y install git curl
EOF

# Install dagu
RUN <<EOF
  curl -L https://github.com/yohamta/dagu/releases/download/v1.10.2/dagu_1.10.2_Linux_x86_64.tar.gz > dagu.tar.gz
  tar zxvf dagu.tar.gz
  mv dagu /usr/local/bin
  rm dagu.tar.gz LICENSE.md README.md
EOF

ARG PYPI_INDEX_URL=https://pypi.org/simple
ARG POETRY_VERSION=1.4.0

WORKDIR /app

RUN --mount=type=cache,target=/root/.cache pip install -i $PYPI_INDEX_URL "poetry==$POETRY_VERSION"

COPY poetry.lock pyproject.toml /app/
RUN poetry export --without-hashes -o requirements.txt

RUN --mount=type=cache,target=/root/.cache pip install -i $PYPI_INDEX_URL --extra-index-url https://pypi.org/simple --no-dependencies -r requirements.txt

## FIX bitandsands
ENV LD_LIBRARY_PATH "$LD_LIBRARY_PATH:/opt/conda/lib"
RUN ln -s /opt/conda/lib/libcudart.so.11.7.99 /opt/conda/lib/libcudart.so

# vector
RUN <<EOF
curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash -s -- -y
mkdir -p /var/lib/vector
EOF
ENV PATH "$PATH:/root/.vector/bin"
COPY deployment/config/vector.toml /etc/vector/vector.toml

# Supervisord
RUN --mount=type=cache,target=/root/.cache pip install -i $PYPI_INDEX_URL --extra-index-url https://pypi.org/simple supervisor

COPY tabby ./tabby
COPY deployment/scripts/tabby.sh /usr/bin
CMD ["tabby.sh"]
