File size: 993 Bytes
0598ebe
19868d6
0598ebe
 
a30fdbb
19868d6
0598ebe
 
 
4c53429
19868d6
02bde37
19868d6
31313bf
 
 
19868d6
46d9639
0598ebe
46d9639
3f76caf
46d9639
 
19868d6
3f76caf
31313bf
19868d6
46d9639
 
 
 
19868d6
 
4c53429
0598ebe
 
7e79fb2
3f76caf
520ad9d
3f76caf
bd87b84
520ad9d
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
FROM python:3.9

# Switch to root for system installations
USER root

# Install dependencies
RUN apt-get update && apt-get install -y \
    git \
    && rm -rf /var/lib/apt/lists/*

# Create non-root user
RUN useradd -m -u 1000 user

ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH \
    PORT=7860

# Clone repository as root
RUN --mount=type=secret,id=Access_key,mode=0444,required=true \
    git clone $(cat /run/secrets/Access_key) $HOME/app 

# Ensure non-root user has ownership of the cloned files
RUN chown -R user:user $HOME/app

# Set working directory
WORKDIR $HOME/app

# Create necessary directories with correct permissions
RUN mkdir -p uploads temp && \
    chown -R user:user uploads temp

# Switch to non-root user
USER user

# Install Python dependencies
RUN pip install --no-cache-dir --upgrade -r requirements.txt
RUN mkdir server_storage 
# Expose port 7860
EXPOSE 8080

# Start the application
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]