# Pulsegen Dockerfile # MQTT Pulse Generator Worker FROM python:3.14-alpine # Prevent Python from writing .pyc files and enable unbuffered output ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ MQTT_BROKER=172.16.2.16 \ MQTT_PORT=1883 # Create non-root user RUN addgroup -g 10001 -S app && \ adduser -u 10001 -S app -G app # Set working directory WORKDIR /app # Install Python dependencies COPY apps/pulsegen/requirements.txt /app/requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY apps/__init__.py /app/apps/__init__.py COPY apps/pulsegen/ /app/apps/pulsegen/ # Change ownership to app user RUN chown -R app:app /app # Switch to non-root user USER app # Run application CMD ["python", "-m", "apps.pulsegen.main"]