FROM python:3.12-slim # System deps: nginx & supervisor RUN apt-get update && apt-get install -y --no-install-recommends \ nginx supervisor && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # Python deps COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir -r /app/requirements.txt # App code COPY server /app/server COPY client /app/client # Nginx config COPY deploy/nginx.conf /etc/nginx/nginx.conf # Supervisor config COPY deploy/supervisord.conf /etc/supervisor/conf.d/supervisord.conf # Nginx needs a pid file path RUN mkdir -p /var/run/nginx # Environment defaults ENV TZ=Europe/Bucharest \ API_BIND=127.0.0.1:5000 \ FLET_BIND=127.0.0.1:8080 \ API_BASE_PATH=/api # Expose only 80 internally (for nginx) EXPOSE 80 # Healthcheck (API ping) HEALTHCHECK --interval=30s --timeout=5s --retries=5 CMD \ wget -qO- http://127.0.0.1/api/health || exit 1 # Run all processes via supervisor CMD ["/usr/bin/supervisord","-c","/etc/supervisor/conf.d/supervisord.conf"]