/
/
/
1FROM python:3.12-slim
2
3# System packages for GPIO and building some Python libs
4RUN apt-get update && apt-get install -y --no-install-recommends \
5 python3-rpi.gpio \
6 gcc \
7 python3-dev \
8 libcap2-bin \
9 && rm -rf /var/lib/apt/lists/*
10
11# Python deps:
12# - gpiozero: easy GPIO handling (button)
13# - paho-mqtt: MQTT client
14# - rpi_ws281x / neopixel: addressable RGB LEDs
15RUN pip install --no-cache-dir \
16 gpiozero \
17 paho-mqtt \
18 rpi_ws281x \
19 adafruit-circuitpython-neopixel
20
21WORKDIR /app
22
23# Copy our app into the image
24COPY doorbell_app.py /app/doorbell_app.py
25
26# Run as root so GPIO access works in container
27CMD ["python", "-u", "doorbell_app.py"]
28
29