# voip.ms SMS/MMS API façade — container image.
# Secrets are injected at runtime via env_file (docker-compose) / -e; they are
# NEVER copied into the image (see .dockerignore).
FROM python:3.13-slim

WORKDIR /app

# Install deps first for better layer caching.
COPY sms/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Application package only.
COPY sms/ ./sms/

EXPOSE 8000

# Bind 0.0.0.0 inside the container; the compose port mapping restricts host
# exposure to 127.0.0.1. Adjust the mapping if you need broader exposure
# (the API key in VOIPMS_SMS_API_KEY_HASH gates access either way).
CMD ["uvicorn", "sms.app:app", "--host", "0.0.0.0", "--port", "8000"]