52 lines
1.7 KiB
Docker
52 lines
1.7 KiB
Docker
FROM python:3.10-bookworm
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Create log directories with proper permissions
|
|
RUN mkdir -p /app/logs && \
|
|
touch /app/logs/whisperlive.log && \
|
|
touch /app/logs/connections.log && \
|
|
chmod 666 /app/logs/whisperlive.log && \
|
|
chmod 666 /app/logs/connections.log
|
|
|
|
# install lib required for pyaudio
|
|
RUN apt update && apt install -y portaudio19-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# update pip to support for whl.metadata -> less downloading
|
|
RUN pip install --no-cache-dir -U "pip>=24"
|
|
|
|
# create a working directory
|
|
WORKDIR /app
|
|
|
|
# install the requirements for running the whisper-live server
|
|
COPY requirements/server.txt /app/
|
|
RUN pip install -r server.txt && rm server.txt
|
|
|
|
COPY whisper_live /app/whisper_live
|
|
COPY run_server.py /app
|
|
|
|
# Port options
|
|
EXPOSE ${PORT_WHISPERLIVE}
|
|
EXPOSE ${PORT_WHISPERLIVE_SSL}
|
|
ARG PORT_WHISPERLIVE
|
|
ENV PORT_WHISPERLIVE=${PORT_WHISPERLIVE}
|
|
ARG PORT_WHISPERLIVE_SSL
|
|
ENV PORT_WHISPERLIVE_SSL=${PORT_WHISPERLIVE_SSL}
|
|
|
|
# SSL options
|
|
ARG WHISPERLIVE_SSL
|
|
ENV WHISPERLIVE_SSL=${WHISPERLIVE_SSL}
|
|
|
|
# Model options
|
|
ARG WHISPL_USE_CUSTOM_MODEL
|
|
ENV WHISPL_USE_CUSTOM_MODEL=${WHISPL_USE_CUSTOM_MODEL}
|
|
ARG FASTERWHISPER_MODEL
|
|
ENV FASTERWHISPER_MODEL=${FASTERWHISPER_MODEL}
|
|
|
|
CMD ["sh", "-c", "\
|
|
if [ \"$WHISPERLIVE_SSL\" = \"true\" ]; then \
|
|
python3 -u run_server.py --port $PORT_WHISPERLIVE_SSL --backend faster_whisper --faster_whisper_custom_model_path /app/models/$FASTERWHISPER_MODEL --ssl_cert_path /app/ssl; \
|
|
else \
|
|
python3 -u run_server.py --port $PORT_WHISPERLIVE --backend faster_whisper --faster_whisper_custom_model_path /app/models/$FASTERWHISPER_MODEL --no_single_model; \
|
|
fi"]
|