Spaces:
Sleeping
Sleeping
File size: 3,065 Bytes
37d87af 7f87add 0c542b8 37d87af 0c542b8 e43191e 0c542b8 e43191e 4098e5e 0c542b8 4098e5e 0c542b8 4098e5e 0c542b8 4098e5e 7ee1777 37d87af 0c542b8 37d87af 58914ff 37d87af 0c542b8 7ee1777 37d87af 0c542b8 37d87af 0c542b8 37d87af 0c542b8 37d87af 58914ff 37d87af e43191e 37d87af 0c542b8 4098e5e 37d87af fcd7471 a1f943e 4098e5e 0c542b8 4098e5e 37d87af |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
FROM python:3.9-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
build-essential \
libsndfile1 \
ffmpeg \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user
# Switch to the "user" user
USER user
# Set home to the user's home directory
ENV HOME=/home/user
ENV PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
# Create directories with permissive permissions
RUN mkdir -p /.cache && chmod -R 777 /.cache \
&& mkdir -p $HOME/app/.cache && chmod -R 777 $HOME/app/.cache \
&& mkdir -p $HOME/app/.cache/huggingface && chmod -R 777 $HOME/app/.cache/huggingface \
&& mkdir -p $HOME/app/.cache/huggingface/token && chmod -R 777 $HOME/app/.cache/huggingface \
&& mkdir -p /usr/local/share/nltk_data && chmod -R 777 /usr/local/share/nltk_data \
&& mkdir -p /tmp/librosa_cache && chmod -R 777 /tmp/librosa_cache
# Create token file in the root directory in case it still looks there
RUN mkdir -p /root/.cache/huggingface && chmod -R 777 /root/.cache/huggingface
# Create the data directories referenced in app.py
RUN mkdir -p $HOME/app/data/uploads && chmod -R 777 $HOME/app/data/uploads \
&& mkdir -p $HOME/app/data/results && chmod -R 777 $HOME/app/data/results \
&& mkdir -p $HOME/app/data/configs && chmod -R 777 $HOME/app/data/configs
# Copy requirements file
COPY --chown=user requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -U pip && \
pip install --no-cache-dir -r requirements.txt
# Clone VERSA repository
RUN git clone https://github.com/wavlab-speech/versa.git && \
cd versa && \
pip install -e .
# Set up data directories
RUN mkdir -p $HOME/app/data/configs $HOME/app/data/uploads $HOME/app/data/results && \
chmod -R 777 $HOME/app/data
# Copy universal metrics YAML file
COPY --chown=user universal_metrics.yaml $HOME/app/data/configs/
# Copy application code
COPY --chown=user app.py .
# Create installation complete indicator
RUN touch $HOME/app/versa/.installation_complete
# Set port
EXPOSE 7860
# Set environment variables
ENV GRADIO_SERVER_NAME="0.0.0.0"
ENV NLTK_DATA=/usr/local/share/nltk_data
ENV PYTHONUNBUFFERED=1
ENV HF_HOME=$HOME/.cache/huggingface
# Disable token verification for huggingface models
ENV TRANSFORMERS_OFFLINE=1
ENV HF_DATASETS_OFFLINE=1
# Prevent huggingface from trying to access token
ENV HF_HUB_OFFLINE=1
# Pre-download NLTK data
RUN python -c "import nltk; nltk.download('punkt', download_dir='$NLTK_DATA'); nltk.download('stopwords', download_dir='$NLTK_DATA'); nltk.download('wordnet', download_dir='$NLTK_DATA')"
# Set for Numba cache (error from https://github.com/librosa/librosa/issues/1156)
RUN mkdir -m 777 /tmp/NUMBA_CACHE_DIR /tmp/MPLCONFIGDIR
ENV NUMBA_CACHE_DIR=/tmp/NUMBA_CACHE_DIR/
ENV MPLCONFIGDIR=/tmp/MPLCONFIGDIR/
# Make everything accessible
RUN chmod -R 777 $HOME/app
RUN chmod -R 777 /usr/local/lib/python3.9/site-packages
# Run the application
CMD ["python", "app.py"]
|