# syntax=docker/dockerfile:1.7
FROM python:3.12-alpine
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 VFP_DATA_DIR=/data VFP_PORT=8443
WORKDIR /app
RUN addgroup -S videohub && adduser -S videohub -G videohub
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY videohub_federation ./videohub_federation
COPY scripts/entrypoint.sh /usr/local/bin/vfp-entrypoint
RUN chmod 0755 /usr/local/bin/vfp-entrypoint && mkdir -p /data /tmp/vfp && chown -R videohub:videohub /app /data /tmp/vfp
USER videohub
EXPOSE 8443
HEALTHCHECK --interval=20s --timeout=5s --start-period=10s --retries=5 CMD python -c "import os,urllib.request; u=('https' if os.getenv('VFP_TLS_CERTFILE') and os.getenv('VFP_TLS_KEYFILE') else 'http')+'://127.0.0.1:'+os.getenv('VFP_PORT','8443')+'/health'; print(urllib.request.urlopen(u,timeout=3,context=__import__('ssl')._create_unverified_context() if u.startswith('https') else None).read().decode());"
ENTRYPOINT ["/usr/local/bin/vfp-entrypoint"]
CMD ["python","-m","videohub_federation.app"]
