# FieldWitness Docker Image # # Build: # docker build -t fieldwitness -f docker/Dockerfile . # # Or use docker-compose from docker/: # docker compose up FROM python:3.12-slim ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV PIP_ROOT_USER_ACTION=ignore # System dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ g++ \ libc-dev \ libffi-dev \ libzbar0 \ libjpeg-dev \ zlib1g-dev \ curl \ openssl \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # ── Install fieldwitness ───────────────────────────────────────── COPY pyproject.toml pyproject.toml COPY README.md README.md COPY src/ src/ COPY frontends/ frontends/ RUN pip install --no-cache-dir /app[web,cli] # ── Runtime setup ──────────────────────────────────────────────── RUN mkdir -p /root/.fwmetadata COPY docker/entrypoint.sh /app/entrypoint.sh RUN chmod +x /app/entrypoint.sh ENV FIELDWITNESS_DATA_DIR=/root/.fwmetadata WORKDIR /app EXPOSE 35811 HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \ CMD curl -fs --max-time 3 http://localhost:35811/ || curl -fsk --max-time 3 https://localhost:35811/ || exit 1 ENTRYPOINT ["/app/entrypoint.sh"]