Files
bootnode/api/Dockerfile
T
zeekay 30ae134cf3 fix: production billing hardening + Stripe→Commerce migration
- Replace eval() with json.loads() in usage tracker (security fix)
- Webhook verification fails-closed in production when secret missing
- Add Commerce env vars to K8s deployment (URL, API key, webhook secret)
- Expose ZAP port 9999 in Dockerfile and K8s service
- Replace Stripe env vars with Square in compose.yml
- Update privacy/terms pages: Stripe→Square via Hanzo Commerce
- Add full billing API client module to web/lib/api.ts (17 endpoints)
- Fix hardcoded localhost URLs in dashboard/analytics/organization pages
- Add production webhook rejection test (57 tests passing)
2026-02-12 11:22:03 -08:00

29 lines
919 B
Docker

# syntax=docker/dockerfile:1
FROM python:3.12-slim
WORKDIR /app
# Install system dependencies + kubectl for fleet management
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
&& curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
&& install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
&& rm kubectl \
&& rm -rf /var/lib/apt/lists/*
# Install uv for faster dependency installation
RUN pip install uv
# Copy project files
COPY pyproject.toml README.md ./
COPY bootnode/ bootnode/
# Install dependencies
# Hanzo SDKs are optional - in K8s, the KMS operator injects secrets as env vars
RUN uv pip install --system -e .
# Run the application (8000=HTTP API, 9999=ZAP Cap'n Proto RPC)
EXPOSE 8000 9999
CMD ["uvicorn", "bootnode.main:app", "--host", "0.0.0.0", "--port", "8000"]