File size: 968 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
 
46d9639
3f76caf
 
 
bd87b84
19868d6
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

# Expose port 7860
EXPOSE 7860

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