Netdata.cloud bot for Zulip
1FROM python:3.11-slim
2
3# Install system dependencies
4RUN apt-get update && apt-get install -y \
5 curl \
6 ca-certificates \
7 && rm -rf /var/lib/apt/lists/*
8
9# Install uv
10RUN curl -LsSf https://astral.sh/uv/install.sh | sh
11ENV PATH="/root/.local/bin:$PATH"
12
13# Set working directory
14WORKDIR /app
15
16# Copy project files
17COPY pyproject.toml ./
18COPY netdata_zulip_bot/ ./netdata_zulip_bot/
19COPY README.md ./
20
21# Install dependencies
22RUN uv sync --frozen
23
24# Create non-root user
25RUN useradd --create-home --shell /bin/bash netdata-bot
26USER netdata-bot
27
28# Expose HTTPS port
29EXPOSE 8443
30
31# Set environment variables
32ENV PYTHONPATH=/app
33ENV SERVER_HOST=0.0.0.0
34ENV SERVER_PORT=8443
35
36# Health check
37HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
38 CMD curl -k -f https://localhost:8443/health || exit 1
39
40# Run the application
41CMD [".venv/bin/netdata-zulip-bot"]