After a few weeks since my last deploy, today I deployed a containerized application and it stopped working — it went into a crash loop with this error in the console:
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/application/src/main.py", line 8, in <module>
from src.listener import DiarizationLister
File "/application/src/listener.py", line 5, in <module>
from src.transcription.service import transcribe
File "/application/src/transcription/service.py", line 12, in <module>
from src.commons.transcription.main import TranscriptionManager
File "/application/src/commons/transcription/main.py", line 12, in <module>
from whisperx.asr import FasterWhisperPipeline
File "/usr/local/lib/python3.10/dist-packages/whisperx/asr.py", line 16, in <module>
from whisperx.vads import Vad, Silero, Pyannote
File "/usr/local/lib/python3.10/dist-packages/whisperx/vads/__init__.py", line 1, in <module>
from whisperx.vads.pyannote import Pyannote as Pyannote
File "/usr/local/lib/python3.10/dist-packages/whisperx/vads/pyannote.py", line 7, in <module>
from pyannote.audio import Model
File "/usr/local/lib/python3.10/dist-packages/pyannote/audio/__init__.py", line 29, in <module>
from .core.inference import Inference
File "/usr/local/lib/python3.10/dist-packages/pyannote/audio/core/inference.py", line 35, in <module>
from pyannote.audio.core.io import AudioFile
File "/usr/local/lib/python3.10/dist-packages/pyannote/audio/core/io.py", line 60, in <module>
) -> torchaudio.AudioMetaData:
AttributeError: module 'torchaudio' has no attribute 'AudioMetaData'
I imagine this was caused by some dependency update, but I can’t figure out how to fix it.
Here’s my requirements.txt file:
boto3
pydantic
hf_xet
python-dotenv
whisperx
google-cloud-storage
filelock`
And here’s my Dockerfile:
# Etapa base com Python
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
# Evita prompts interativos na instalação
ENV DEBIAN_FRONTEND=noninteractive
# Instala dependências do sistema (ffmpeg, libsndfile, etc.) E PYTHON
RUN apt-get update && apt-get install -y \
ffmpeg \
git \
libsndfile1 \
python3 \
python3-pip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Cria diretório de trabalho
COPY requirements.txt /application/requirements/requirements.txt
WORKDIR /application/requirements
RUN pip install --upgrade pip && pip install -r requirements.txt
# Configura pip para usar python3
RUN ln -s /usr/bin/python3 /usr/bin/python
ENV PYTORCH_ALLOW_TF32=1
COPY src /application/src
COPY config /application/config
ENV CONFIG_PATH=/application/config
WORKDIR /application
# Comando para iniciar a aplicação
CMD ["python", "-m", "src.main"]
After a few weeks since my last deploy, today I deployed a containerized application and it stopped working — it went into a crash loop with this error in the console:
I imagine this was caused by some dependency update, but I can’t figure out how to fix it.
Here’s my requirements.txt file:
And here’s my Dockerfile: