File size: 1,942 Bytes
55b0541
8466e45
4ee3470
fcd826b
 
 
3034296
 
 
 
 
 
4ee3470
 
 
 
8466e45
3034296
8466e45
2754a2b
8466e45
 
3034296
 
 
 
 
4ee3470
 
d3ff2e2
8466e45
 
d3ff2e2
8466e45
2b16125
d3ff2e2
 
55b0541
4ee3470
8466e45
55b0541
4ee3470
 
 
 
 
 
 
 
d3ff2e2
4ee3470
2b16125
7e9dd76
4ee3470
 
 
 
 
 
d3ff2e2
f20dd46
4ee3470
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
58
59
60
61
62
# First stage: build dependencies
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm

# Install Lambda web adapter in case you want to run with with an AWS Lamba function URL
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.3 /lambda-adapter /opt/extensions/lambda-adapter

# Install wget
RUN apt-get update && apt-get install -y wget

# Create a directory for the model
RUN mkdir /model

WORKDIR /src

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

# Gradio needs to be installed after due to conflict with spacy in requirements
RUN pip install --no-cache-dir gradio==4.36.1

# Download the BGE embedding model during the build process
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get install git-lfs -y
RUN git lfs install
RUN git clone https://huggingface.co/BAAI/bge-small-en-v1.5 /model/bge
RUN rm -rf /model/bge/.git

# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user

# Change ownership of /home/user directory
RUN chown -R user:user /home/user

# Make output folder
RUN mkdir -p /home/user/app/output && chown -R user:user /home/user/app/output
RUN mkdir -p /home/user/.cache/huggingface/hub && chown -R user:user /home/user/.cache/huggingface/hub

# Switch to the "user" user
USER user

# Set home to the user's home directory
ENV HOME=/home/user \
	PATH=/home/user/.local/bin:$PATH \
    PYTHONPATH=$HOME/app \
	PYTHONUNBUFFERED=1 \
	GRADIO_ALLOW_FLAGGING=never \
	GRADIO_NUM_PORTS=1 \
	GRADIO_SERVER_NAME=0.0.0.0 \
	GRADIO_SERVER_PORT=7860 \
	GRADIO_THEME=huggingface \
	AWS_STS_REGIONAL_ENDPOINT=regional \
	#GRADIO_ROOT_PATH=/data-text-search \
	SYSTEM=spaces
 
# Set the working directory to the user's home directory
WORKDIR $HOME/app

# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app

CMD ["python", "app.py"]