File size: 2,465 Bytes
48a31ef
ad36b28
4783e69
ad36b28
419cbad
388eb43
4241251
dd06460
62d5680
f21bddd
ad36b28
 
 
 
 
 
 
 
 
 
 
 
 
62d5680
946e50b
 
d3d04b6
7f25f41
82c56fb
 
 
 
748817d
946e50b
882f0dd
 
 
 
a8fea20
882f0dd
d487566
 
ea8536b
d487566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c26daac
d487566
 
7f25f41
82c56fb
7f25f41
270f170
82c56fb
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
63
64
65
66
67
#FROM ghcr.io/ten-framework/ten_agent_build:0.4.17-2-geca93b3-cuda
FROM ghcr.io/ten-framework/ten_agent_build:0.5.0-2-g7d064cd-vllm-cpu

#RUN apt update -y && apt-get install -y --no-install-recommends libnuma-dev

RUN pip install "huggingface_hub[cli]"
RUN pip install hf_transfer

# install vllm
#RUN pip install vllm
#RUN git clone https://github.com/vllm-project/vllm.git
#RUN pip install cmake>=3.26 wheel packaging ninja "setuptools-scm>=8" numpy
#RUN cd vllm && pip install -v -r requirements/cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu
#RUN git clone -b rls-v3.5 https://github.com/oneapi-src/oneDNN.git
#RUN cmake -B ./oneDNN/build -S ./oneDNN -G Ninja -DONEDNN_LIBRARY_TYPE=STATIC \
#    -DONEDNN_BUILD_DOC=OFF \
#    -DONEDNN_BUILD_EXAMPLES=OFF \
#    -DONEDNN_BUILD_TESTS=OFF \
#    -DONEDNN_BUILD_GRAPH=OFF \
#    -DONEDNN_ENABLE_WORKLOAD=INFERENCE \
#    -DONEDNN_ENABLE_PRIMITIVE=MATMUL
#RUN cmake --build ./oneDNN/build --target install --config Release -j 1
#RUN cd vllm && VLLM_TARGET_DEVICE=cpu MAX_JOBS=2 python3 setup.py install

# install node and npm for demo
ENV NVM_DIR /usr/local/nvm
RUN mkdir -p $NVM_DIR
# Create a script file sourced by both interactive and non-interactive bash shells
ENV BASH_ENV /usr/local/nvm/.nvm_bash_env
RUN touch "${BASH_ENV}"
RUN echo '. "${BASH_ENV}"' >> ~/.bashrc
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | PROFILE="${BASH_ENV}" bash
RUN . $NVM_DIR/nvm.sh && nvm install node


# install TEN-Agent
RUN git clone https://github.com/TEN-framework/TEN-Agent.git /app
RUN cd /app && task use && cd agents && ./scripts/package.sh
RUN . $NVM_DIR/nvm.sh && cd /app/playground && npm i

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

# 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

# Set the working directory to the user's home directory
WORKDIR $HOME/app

# Try and run pip command after setting the user with `USER user` to avoid permission issues with Python
RUN pip install --no-cache-dir --upgrade pip

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

# auto init nvm for the "user" user
RUN echo '. "${BASH_ENV}"' >> $HOME/.bashrc


ENTRYPOINT ["/home/user/app/entrypoint.sh"]