# Lyrica (https://github.com/Wilooper/Lyrica, MIT): a lyrics service that tries several sources and returns plain, line-synced and word-synced lyrics.
# Pinned to one commit so what runs is what was tested; change LYRICA_REF to update.
FROM python:3.11-slim
ARG LYRICA_REF=2c77f81752f3e1ae9a1adbd7b68f633d60b2de23
ENV PYTHONUNBUFFERED=1 PORT=9999
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends build-essential gcc git libxml2-dev libxslt1-dev libffi-dev libssl-dev curl ca-certificates \
 && rm -rf /var/lib/apt/lists/* \
 && curl -fsSL "https://github.com/Wilooper/Lyrica/archive/${LYRICA_REF}.tar.gz" | tar xz --strip-components=1 -C /app \
 && pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r requirements.txt \
 && useradd -m lyrica && chown -R lyrica /app
USER lyrica
EXPOSE 9999
CMD ["gunicorn", "-c", "gunicorn.config.py", "run:app"]
