ARG PARENT_IMAGE=086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:python312
ARG UV_VERSION=0.9.15
FROM ghcr.io/astral-sh/uv:${UV_VERSION} AS uv
FROM $PARENT_IMAGE AS parent

ENV PYTHONUNBUFFERED=1 \
    # Configure optimizations recommended by https://docs.astral.sh/uv/guides/integration/docker/#optimizations
    UV_COMPILE_BYTECODE=1 \
    UV_LINK_MODE=copy \
    # Always use python from the base image
    UV_PYTHON_DOWNLOADS=never \
    # Configure uv cache to be independent of user home
    UV_CACHE_DIR="/tmp/uv_cache" \
    # Create virtualenv in a separate directory so that project files can be
    # mounted without overwriting the virtualenv when developing locally.
    UV_PROJECT_ENVIRONMENT="/opt/.venv"

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

USER root

# Run updates and install sshd
RUN apt-get update \
  && apt-get -y upgrade \
  && apt-get install -y openssh-server \
  && mkdir -p /var/run/sshd \
  && apt-get -y clean \
  && rm -rf /var/lib/apt/lists/*

COPY --from=uv /uv /uvx /bin/

COPY uv.lock pyproject.toml ./
RUN  --mount=type=cache,target=$UV_CACHE_DIR \
     uv sync --locked --no-install-project --no-dev

COPY . .

# Copy common sshd config
COPY sshd_config/sshd_config /etc/ssh/sshd_config

COPY entrypoint.py /usr/local/bin/entrypoint.py

EXPOSE 2222

ENTRYPOINT ["ddtrace-run", "python", "/usr/local/bin/entrypoint.py"]
