FROM mcr.microsoft.com/devcontainers/python:1-3.13-bookworm

# `mysql` CLI for poking at the database during development.
#
# The base image ships a yarn apt source whose signing key has since rotated,
# which makes `apt-get update` fail outright. We don't use yarn, so drop that
# source list rather than carrying its key.
RUN rm -f /etc/apt/sources.list.d/yarn.list \
    && apt-get update \
    && apt-get install -y --no-install-recommends default-mysql-client \
    && rm -rf /var/lib/apt/lists/*

# Pinned rather than :latest so a rebuild months from now is reproducible.
COPY --from=ghcr.io/astral-sh/uv:0.9.7 /uv /uvx /usr/local/bin/

ENV UV_PROJECT_ENVIRONMENT=/workspaces/v2x-server/.venv \
    # Bind mounts can't be hardlinked into, which is uv's default install mode.
    UV_LINK_MODE=copy \
    UV_COMPILE_BYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PATH=/workspaces/v2x-server/.venv/bin:$PATH
