# 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"]