# Use Python 3.10.13 as the base image FROM python:3.10.13-slim # Set the working directory in the container WORKDIR /app # Upgrade pip, install git, MeCab and its dependencies RUN apt-get update \ && apt-get install -y git mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8 \ && pip install --upgrade pip # Install PyTorch RUN pip install torch # Install other dependencies from requirements.txt COPY requirements.txt /app/ RUN pip install --no-cache-dir -r requirements.txt # List installed packages for debugging RUN pip list # Copy the rest of your application's code COPY . /app/ # Set the correct permissions for the copied files RUN chmod -R 777 /app ENV NUMBA_CACHE_DIR=/tmp # Replace the librosa files with your custom versions and set permissions COPY packages/notation.py /usr/local/lib/python3.10/site-packages/librosa/core/notation.py COPY packages/audio.py /usr/local/lib/python3.10/site-packages/librosa/core/audio.py COPY packages/constantq.py /usr/local/lib/python3.10/site-packages/librosa/core/constantq.py COPY packages/filters.py /usr/local/lib/python3.10/site-packages/librosa/filters.py COPY packages/sequence.py /usr/local/lib/python3.10/site-packages/librosa/sequence.py COPY utils.py /usr/local/lib/python3.10/site-packages/librosa/feature/utils.py COPY packages/utils.py /usr/local/lib/python3.10/site-packages/librosa/util/utils.py COPY packages/matching.py /usr/local/lib/python3.10/site-packages/librosa/util/matching.py COPY packages/spectrum.py /usr/local/lib/python3.10/site-packages/librosa/core/spectrum.py COPY packages/pitch.py /usr/local/lib/python3.10/site-packages/librosa/core/pitch.py RUN chmod -R 777 /usr/local/lib/python3.10/site-packages/librosa \ && chmod 777 /tmp && mkdir /.local && chmod -R 777 /.local && mkdir /.cache && chmod -R 777 /.cache && \ mkdir /.config && chmod -R 777 /.config # Set the environment variable for the NUMBA cache directory # Expose the port your app runs on EXPOSE 7860 # Download UniDic for MeCab RUN pip install unidic \ && python -m unidic download # Set the environment variable for Coqui TTS ENV COQUI_TOS_AGREED=1 # Apply migrations RUN python manage.py migrate # Use Django's built-in server to serve the app CMD ["python3", "manage.py", "runserver", "0.0.0.0:7860"]