Dockerfile 927 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. FROM python:3.13-alpine AS builder
  2. ARG LITE=False
  3. WORKDIR /app
  4. COPY Pipfile* ./
  5. RUN apk update && apk add --no-cache gcc musl-dev python3-dev libffi-dev zlib-dev jpeg-dev \
  6. && pip install pipenv \
  7. && PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy \
  8. && if [ "$LITE" = False ]; then pipenv install selenium; fi
  9. FROM python:3.13-alpine
  10. ARG APP_WORKDIR=/iptv-api
  11. ARG LITE=False
  12. ENV APP_WORKDIR=$APP_WORKDIR
  13. ENV LITE=$LITE
  14. ENV APP_PORT=8000
  15. ENV PATH="/.venv/bin:$PATH"
  16. ENV UPDATE_CRON1="0 22 * * *"
  17. ENV UPDATE_CRON2="0 10 * * *"
  18. WORKDIR $APP_WORKDIR
  19. COPY . $APP_WORKDIR
  20. COPY --from=builder /app/.venv /.venv
  21. RUN apk update && apk add --no-cache dcron ffmpeg \
  22. && if [ "$LITE" = False ]; then apk add --no-cache chromium chromium-chromedriver; fi
  23. EXPOSE $APP_PORT
  24. COPY entrypoint.sh /iptv-api-entrypoint.sh
  25. COPY config /iptv-api-config
  26. RUN chmod +x /iptv-api-entrypoint.sh
  27. ENTRYPOINT /iptv-api-entrypoint.sh