FROM python:3.11-slim # Install system dependencies RUN apt-get update && apt-get install -y \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Install uv RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:$PATH" # Set working directory WORKDIR /app # Copy project files COPY pyproject.toml ./ COPY netdata_zulip_bot/ ./netdata_zulip_bot/ COPY README.md ./ # Install dependencies RUN uv sync --frozen # Create non-root user RUN useradd --create-home --shell /bin/bash netdata-bot USER netdata-bot # Expose HTTPS port EXPOSE 8443 # Set environment variables ENV PYTHONPATH=/app ENV SERVER_HOST=0.0.0.0 ENV SERVER_PORT=8443 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -k -f https://localhost:8443/health || exit 1 # Run the application CMD [".venv/bin/netdata-zulip-bot"]