File size: 1,488 Bytes
34ac963 8caa6e7 174263f 41e3c8b 174263f 34ac963 174263f 34ac963 174263f 8caa6e7 abf547c 8caa6e7 174263f 8caa6e7 abf547c 8caa6e7 49baafa abf547c 525086a 49baafa 174263f 49baafa 174263f abf547c 49baafa 525e9c6 669a7bb 254a4f5 6378b5c 174263f 254a4f5 6378b5c 174263f abf547c |
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 |
FROM python:3.9
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --no-install-recommends -y \
build-essential \
python3-pip \
git \
ffmpeg \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /code
COPY ./requirements.txt /code/requirements.txt
# For hugging face
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# Set up user and environment
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Set working directory
WORKDIR $HOME/app
# Copy the application files into the container
COPY --chown=user . $HOME/app
# Download ngrok v3 from the official website
RUN wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.tgz -O /tmp/ngrok.tgz
# Extract ngrok binary to /usr/local/bin with elevated permissions
RUN sudo tar xvzf /tmp/ngrok.tgz -C /usr/local/bin && \
rm /tmp/ngrok.tgz
# Move ngrok binary to destination directory
RUN mv ngrok /usr/local/bin/ngrok
# Set permissions for ngrok
RUN chmod +x /usr/local/bin/ngrok
# Verify ngrok version
RUN /usr/local/bin/ngrok version
# Create ngrok configuration
RUN mkdir -p $HOME/.ngrok2 && \
echo "authtoken: 1XtU01EKWysplGQ8fz54lVUQpnQ_3KKhw6YNQ5E85rxdkgXx4" > $HOME/.ngrok2/ngrok.yml
# Set the command to run the FastAPI application and ngrok
CMD ["sh", "-c", "uvicorn app:app --host 0.0.0.0 --port 7860 & sleep 5 && ngrok http 7860"]
# Expose the port for ngrok and FastAPI
EXPOSE 7860
EXPOSE 4040
|