FROM python:3.12-bullseye ARG USER=vscode ARG DEBIAN_FRONTEND=noninteractive # 1) Toolchain + utilities for building libpostal RUN apt-get update && apt-get install -y --no-install-recommends \ sudo jq vim curl git ca-certificates \ build-essential pkg-config automake autoconf libtool \ && rm -rf /var/lib/apt/lists/* # # 2) Build and install libpostal from source # RUN git clone --depth 1 https://github.com/openvenues/libpostal /tmp/libpostal \ # && cd /tmp/libpostal \ # && ./bootstrap.sh \ # && ./configure --datadir=/usr/local/share/libpostal \ # && make -j"$(nproc)" \ # && make install \ # && ldconfig \ # && rm -rf /tmp/libpostal # 3) Create the user and grant sudo privileges RUN useradd -m -s /usr/bin/bash ${USER} \ && echo "${USER} ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/${USER} \ && chmod 0440 /etc/sudoers.d/${USER} # 4) Python deps ENV PIP_NO_CACHE_DIR=1 PIP_DISABLE_PIP_VERSION_CHECK=1 # Model # ADD asset_list/requirements.txt requirements.txt # FASTAPI backend ADD .devcontainer/requirements.txt requirements.txt RUN pip install -r requirements.txt # 5) Workdir WORKDIR /workspaces/model # 6) Make Python find your package # Add project root to PYTHONPATH for all processes ENV PYTHONPATH=/workspaces/model:${PYTHONPATH}