diff --git a/Dockers/iptv-epg/Dockerfile b/Dockers/iptv-epg/Dockerfile index ec8f3dd..0db6b8c 100644 --- a/Dockers/iptv-epg/Dockerfile +++ b/Dockers/iptv-epg/Dockerfile @@ -1,7 +1,7 @@ FROM node:20-alpine # Install required packages -RUN apk add --no-cache git curl unzip coreutils +RUN apk add --no-cache git curl unzip coreutils dcron # Set working directory WORKDIR /app @@ -9,7 +9,7 @@ WORKDIR /app # Clone the latest EPG repository code RUN git clone --depth 1 -b master https://github.com/iptv-org/epg.git . && \ npm install && \ - npm install pm2 serve -g + npm install serve -g # Create guides directory RUN mkdir -p /app/guides diff --git a/Dockers/iptv-epg/entrypoint.sh b/Dockers/iptv-epg/entrypoint.sh index e9ed89a..596a86e 100644 --- a/Dockers/iptv-epg/entrypoint.sh +++ b/Dockers/iptv-epg/entrypoint.sh @@ -69,8 +69,22 @@ fi if [ -n "$CRON_SCHEDULE" ] && [ -n "$SITES" ]; then echo "Setting up cron job with schedule: $CRON_SCHEDULE" - pm2 start --name epg-grabber /app/entrypoint.sh --no-autorestart --cron-restart="$CRON_SCHEDULE" -- grab - pm2 logs epg-grabber & + # Cron runs with a minimal env — bake grab-related vars into a wrapper script. + { + echo '#!/bin/sh' + echo 'cd /app' + for var in SITES OUTPUT MAX_CONNECTIONS DAYS TIMEOUT DELAY LANG PROXY GZIP JSON CURL; do + eval "val=\$$var" + if [ -n "$val" ]; then + printf "export %s='%s'\n" "$var" "$(printf '%s' "$val" | sed "s/'/'\\\\''/g")" + fi + done + echo 'exec /app/entrypoint.sh grab' + } >/app/run-grab.sh + chmod +x /app/run-grab.sh + echo "$CRON_SCHEDULE /app/run-grab.sh >> /proc/1/fd/1 2>&1" >/etc/crontabs/root + chmod 600 /etc/crontabs/root + crond -b -l 2 fi echo "Starting server on port 3000 to serve EPG files from /app/guides"