mirror of
https://github.com/plexguide/Huntarr.io.git
synced 2026-02-08 23:29:10 -06:00
38 lines
1.2 KiB
Docker
38 lines
1.2 KiB
Docker
FROM python:3.12-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Install system dependencies including net-tools for health checks and tzdata for timezone support
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
net-tools \
|
|
curl \
|
|
wget \
|
|
nano \
|
|
tzdata \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install required packages from the root requirements file
|
|
COPY requirements.txt /app/
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application code
|
|
COPY . /app/
|
|
|
|
# Create necessary directories (config for app data; /media for Docker media mount)
|
|
RUN mkdir -p /config /media && chmod -R 755 /config /media
|
|
|
|
# Set environment variables
|
|
ENV PYTHONPATH=/app
|
|
ENV TZ=UTC
|
|
# ENV APP_TYPE=sonarr # APP_TYPE is likely managed via config now, remove if not needed
|
|
|
|
# Expose port
|
|
EXPOSE 9705
|
|
|
|
# Add health check for Docker using Python to avoid spawning curl processes
|
|
# The SIGCHLD handler in main.py will reap any terminated health check processes
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
|
CMD ["python3", "-c", "import requests; import sys; r = requests.get('http://localhost:9705/api/health', timeout=5); sys.exit(0 if r.status_code == 200 else 1)"]
|
|
|
|
# Run the main application using the new entry point
|
|
CMD ["python3", "main.py"] |