File size: 1,161 Bytes
0daaf05
a7438ba
225dc8e
0daaf05
225dc8e
 
 
f618b3b
 
 
 
b98d409
f618b3b
 
 
 
 
 
cc3fbd0
 
 
 
 
 
225dc8e
f618b3b
eb2dd81
225dc8e
0465d18
0daaf05
eb2dd81
6263425
aa67972
0daaf05
eb2dd81
0daaf05
 
 
 
eb2dd81
 
aa67972
318c2a2
eb2dd81
0daaf05
eb2dd81
 
 
0daaf05
a7438ba
f618b3b
0daaf05
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
# Use Python 3.9 slim image as the base
FROM python:3.9-slim

# Install necessary system dependencies
RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx \
    libglib2.0-0 \
    wget \
    unzip \
    curl \
    ca-certificates \
    gnupg \
    fonts-liberation \
    libnss3 \
    libxss1 \
    libappindicator1 \
    libgbm-dev \
    libgtk-3-0 \
    gcc \
    libffi-dev \
    libxml2-dev \
    libxslt1-dev \
    libjpeg-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# Set the working directory
WORKDIR /code

# Create necessary directories
RUN mkdir -p /code/uploads /code/chroma_db

# Add and use a non-root user
RUN useradd -ms /bin/sh myuser

# Set ownership and permissions
RUN chown -R myuser:myuser /code && \
    chmod -R 755 /code/chroma_db && \
    chmod -R 775 /code/uploads

# Switch to non-root user
USER myuser

# Copy and install Python dependencies
COPY --chown=myuser:myuser ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

# Copy the application code
COPY --chown=myuser:myuser . /code

# Default command to run the application
CMD ["python", "app.py"]