Guiding-light/UI
0
1ARG MODEL_NAME2ARG MODEL_PARAMS3ARG MODEL_PROMPT_TEMPLATE4ARG APP_COLOR5ARG APP_NAME6 7 8FROM node:19 as chatui-builder9ARG MODEL_NAME10ARG MODEL_PARAMS11ARG APP_COLOR12ARG APP_NAME13ARG MODEL_PROMPT_TEMPLATE14 15WORKDIR /app16 17RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \18 git gettext && \19 rm -rf /var/lib/apt/lists/*20 21 22RUN git clone https://github.com/huggingface/chat-ui.git23 24WORKDIR /app/chat-ui25 26 27COPY .env.local.template .env.local.template28 29RUN mkdir defaults30ADD defaults /defaults31RUN chmod -R 777 /defaults32RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \33 MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \34 && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \35 && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \36 && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \37 && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \38 && MONGODB_URL=$(cat /run/secrets/MONGODB_URL > /dev/null | grep '^' || cat /defaults/MONGODB_URL) && export MONGODB_URL && \39 echo "${MONGODB_URL}" && \40 envsubst < ".env.local.template" > ".env.local" \ 41 && rm .env.local.template42 43 44 45RUN --mount=type=cache,target=/app/.npm \46 npm set cache /app/.npm && \47 npm ci48 49RUN npm run build50 51FROM ghcr.io/huggingface/text-generation-inference:latest52 53ARG MODEL_NAME54ARG MODEL_PARAMS55ARG MODEL_PROMPT_TEMPLATE56ARG APP_COLOR57ARG APP_NAME58 59ENV TZ=Europe/Paris \60 PORT=300061 62 63 64RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \65 gnupg \66 curl \67 gettext && \68 rm -rf /var/lib/apt/lists/*69COPY entrypoint.sh.template entrypoint.sh.template70 71RUN mkdir defaults72ADD defaults /defaults73RUN chmod -R 777 /defaults74 75RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \76 MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \77 && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \78 && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \79 && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \80 && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \81 && MONGODB_URL=$(cat /run/secrets/MONGODB_URL > /dev/null | grep '^' || cat /defaults/MONGODB_URL) && export MONGODB_URL && \82 envsubst < "entrypoint.sh.template" > "entrypoint.sh" \83 && rm entrypoint.sh.template84 85 86RUN curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \87 gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \88 --dearmor89 90RUN echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list91 92RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \93 mongodb-org && \94 rm -rf /var/lib/apt/lists/*95 96RUN mkdir -p /data/db97RUN chown -R 1000:1000 /data98 99RUN curl -fsSL https://deb.nodesource.com/setup_19.x | /bin/bash -100 101RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \102 nodejs && \103 rm -rf /var/lib/apt/lists/*104 105RUN mkdir /app106RUN chown -R 1000:1000 /app107 108RUN useradd -m -u 1000 user109 110# Switch to the "user" user111USER user112 113ENV HOME=/home/user \114 PATH=/home/user/.local/bin:$PATH115 116RUN npm config set prefix /home/user/.local117RUN npm install -g pm2118 119COPY --from=chatui-builder --chown=1000 /app/chat-ui/node_modules /app/node_modules120COPY --from=chatui-builder --chown=1000 /app/chat-ui/package.json /app/package.json121COPY --from=chatui-builder --chown=1000 /app/chat-ui/build /app/build122 123ENTRYPOINT ["/bin/bash"]124CMD ["entrypoint.sh"]125 126 127 