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