Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 3,104 Bytes
1f8e638 591adff 1f8e638 a71cf14 1f8e638 5db5d3c 1f8e638 e619fa7 e2e7175 e619fa7 e2e7175 e619fa7 1f8e638 e619fa7 1f8e638 5db5d3c 1f8e638 5db5d3c 1f8e638 5db5d3c 1f8e638 5db5d3c 1f8e638 5db5d3c 1f8e638 e619fa7 1f8e638 5db5d3c 1f8e638 e619fa7 |
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
ARG MODEL_NAME
ARG MODEL_PROMPT_TEMPLATE
ARG APP_COLOR
ARG APP_NAME
FROM node:20 as chatui-builder
ARG MODEL_NAME
ARG APP_COLOR
ARG APP_NAME
ARG MODEL_PROMPT_TEMPLATE
WORKDIR /app
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
git gettext && \
rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/langtech-bsc/chat-ui.git --branch production
WORKDIR /app/chat-ui
RUN echo "" > /app/.env
COPY .env.local.template .env.local.template
COPY PRIVACY.md PRIVACY.md
RUN mkdir defaults
ADD defaults /defaults
RUN chmod -R 777 /defaults
RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
--mount=type=secret,id=BASEURL,mode=0444 \
--mount=type=secret,id=BASEURL_SALAMANDRA_TOOLS,mode=0444 \
--mount=type=secret,id=HF_TOKEN,mode=0444 \
export MODEL_NAME="${MODEL_NAME:=$(cat /defaults/MODEL_NAME)}" \
&& export MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:=$(cat /defaults/MODEL_PROMPT_TEMPLATE)}" \
&& export APP_COLOR="${APP_COLOR:=$(cat /defaults/APP_COLOR)}" \
&& export APP_NAME="${APP_NAME:=$(cat /defaults/APP_NAME)}" \
&& export MONGODB_URL=$(cat /run/secrets/MONGODB_URL | grep '^') \
&& export BASEURL=$(cat /run/secrets/BASEURL | grep '^') \
&& export BASEURL_SALAMANDRA_TOOLS=$(cat /run/secrets/BASEURL_SALAMANDRA_TOOLS | grep '^') \
&& export HF_TOKEN=$(cat /run/secrets/HF_TOKEN | grep '^') \
&& envsubst < ".env.local.template" > ".env.local" \
&& rm .env.local.template
RUN --mount=type=cache,target=/app/.npm \
npm set cache /app/.npm && \
npm ci
RUN npm run build
ENV TZ=Europe/Paris \
PORT=3000
COPY entrypoint.sh.template entrypoint.sh.template
RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \
&& MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \
&& MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \
&& APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \
&& APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \
&& envsubst < "entrypoint.sh.template" > "entrypoint.sh" \
&& rm entrypoint.sh.template
# Create necessary directories and set permissions
RUN mkdir -p /data/db \
&& chown -R 1000:1000 /data \
&& chown -R 1000:1000 /app
# Add user only if it doesn't already exist
# Switch to the "user" user
USER node
# Set user environment variables
ENV HOME=/home/node \
PATH=/home/node/.local/bin:$PATH
RUN npm config set prefix /home/node/.local
RUN npm install -g pm2
RUN npm install -g dotenv-cli
RUN mv /app/chat-ui/node_modules /app/node_modules
RUN mv /app/chat-ui/package.json /app/package.json
RUN mv /app/chat-ui/build /app/build
RUN mv /app/chat-ui/.env /app/.env
RUN mv /app/chat-ui/.env.local /app/.env.local
RUN mv /app/chat-ui/entrypoint.sh /app/entrypoint.sh
RUN rm -rf /app/chat-ui
WORKDIR /app
ENTRYPOINT ["/bin/bash"]
CMD ["entrypoint.sh"] |