# read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker # you will also find guides on how best to write your Dockerfile FROM python:3.10 WORKDIR /code # ENV PIP_TARGET=/home/user/app/pip # ENV PYTHONPATH=${PYTHONPATH}:${PIP_TARGET} # RUN python -m venv /home/user/app/venv # ENV PATH="/home/user/app/bin:$PATH" COPY ./requirements.txt /code/requirements.txt RUN pip install --no-cache-dir --upgrade pip # RUN pip install --no-cache-dir lit # Install playsound separately with the --no-build-isolation flag # RUN pip install --no-cache-dir --no-build-isolation playsound RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf - \ && cd openssl-1.1.1u \ && ./config --prefix=/usr/local \ && make -j $(nproc) \ make install_sw install_ssldirs \ ldconfig -v ENV SSL_CERT_DIR=/usr/lib/ssl/certs ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # Access for folder ENV TORCH_HOME /home/user/app # RUN mkdir -p /home/user/torchcache && chmod -R u+rwx /home/user/torchcache # ENV TORCH_HOME /home/user/.cache/torch RUN mkdir -p /home/user/.cache/torch && chmod -R u+rwx /home/user/.cache/torch RUN mkdir -p /home/user/.cache/torch/sentence_transformers && \ chmod -R u+rwx /home/user/.cache/torch/sentence_transformers RUN mkdir -p /home/user/.cache/torch/sentence_transformers/sentence-transformers_all-MiniLM-L6-v2 && \ chmod -R u+rwx /home/user/.cache/torch/sentence_transformers/sentence-transformers_all-MiniLM-L6-v2 RUN mkdir -p /home/user/app/datasets &&\ chmod -R 777 /home/user/app/datasets RUN mkdir -p /home/user/app/datasets/downloads &&\ chmod -R 777 /home/user/app/datasets/downloads RUN mkdir -p /home/user/app/cache &&\ chmod -R 777 /home/user/app/cache RUN mkdir -p /home/user/app &&\ chmod -R 777 /home/user/app # RUN mkdir -p /home/user/.cache/torch/sentence_transformers/sentence-transformers_all-MiniLM-L6-v2/.gitattributes.lock && \ # chmod -R u+rwx /home/user/.cache/torch/sentence_transformers/sentence-transformers_all-MiniLM-L6-v2/.gitattributes.lock # RUN mkdir -p /home/user/.cache/torch && chmod -R u+rwx /home/user/.cache/torch RUN mkdir -p /home/user/matplotlib && chmod -R u+rwx /home/user/matplotlib RUN apt-get update RUN apt-get install build-essential libssl-dev ca-certificates libasound2 wget RUN apt-get install -y ffmpeg RUN apt-get install -y graphviz RUN python -m playwright install-deps RUN PLAYWRIGHT_BROWSERS_PATH=/home/user/app/ms-playwright python -m playwright install chromium # RUN apt-get update && \ # apt-get install -y build-essential libssl-dev ca-certificates libasound2 wget && \ # wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf - && \ # cd openssl-1.1.1u && \ # ./config --prefix=/usr/local && \ # make -j $(nproc) && \ # make install_sw install_ssldirs && \ # ldconfig -v && \ # export SSL_CERT_DIR=/etc/ssl/certs && \ # cd ../ && \ # rm -rf openssl-1.1.1u && \ # pip install --no-cache-dir azure-cognitiveservices-speech==1.30.0 \ # export SSL_CERT_DIR=/usr/lib/ssl/certs # 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 \ PATH=/home/user/.local/bin:$PATH # RUN mkdir -p /home/user/.cache/torch && \ # chown -R user:user /home/user/.cache # Set the working directory to the user's home directory WORKDIR $HOME/app # Copy the current directory contents into the container at $HOME/app setting the owner to the user COPY --chown=user . $HOME/app CMD ["python", "app.py"]