Dockerfile44 lines · 972 chars FROM python:3.12-slim
ENV DEBIAN_FRONTEND=noninteractive
# System dependencies for building numpy/pandas-like extensions
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
gfortran \
libopenblas-dev \
liblapack-dev \
libffi-dev \
pkg-config \
ninja-build \
meson \
locales \
git \
curl \
ca-certificates \
&& locale-gen en_US.UTF-8 2>/dev/null || true \
&& update-locale LANG=en_US.UTF-8 2>/dev/null || true \
&& rm -rf /var/lib/apt/lists/*
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
WORKDIR /workspace
# Copy source code
COPY . /workspace
# Create a Python virtual environment and install the package from source
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
# Upgrade packaging tooling
RUN python -m pip install --upgrade pip setuptools wheel
# Build/install the project in editable mode
RUN pip install --no-cache-dir -e .
# Default to a shell
CMD ["bash"]