New MQTT adaption
This commit is contained in:
37
Dockerfile
Normal file
37
Dockerfile
Normal file
@ -0,0 +1,37 @@
|
||||
FROM python:3.11-slim
|
||||
|
||||
# Set metadata
|
||||
LABEL maintainer="mail@hendrikschutter.com"
|
||||
LABEL description="Prometheus exporter for VEGAPULS Air sensors via The Things Network"
|
||||
LABEL version="2.0"
|
||||
|
||||
# Create app directory
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Copy application files
|
||||
COPY ttn-vegapuls-exporter.py .
|
||||
COPY config.py .
|
||||
|
||||
# Create non-root user
|
||||
RUN useradd -r -u 1000 -g users exporter && \
|
||||
chown -R exporter:users /app
|
||||
|
||||
# Switch to non-root user
|
||||
USER exporter
|
||||
|
||||
# Expose metrics port
|
||||
EXPOSE 9106
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
|
||||
CMD python -c 'import urllib.request; urllib.request.urlopen("http://localhost:9106/health")' || exit 1
|
||||
|
||||
# Set environment variables
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
# Run the exporter
|
||||
CMD ["python", "ttn-vegapuls-exporter.py"]
|
||||
Reference in New Issue
Block a user