Spaces:
Runtime error
Runtime error
File size: 3,441 Bytes
5341e74 9f97180 db9f671 5341e74 a240151 9f97180 5341e74 c6d4e5d 5341e74 da9dd3b 2917d86 5341e74 2917d86 a240151 5341e74 2917d86 5341e74 da9dd3b a240151 da9dd3b 5341e74 a240151 bd58e89 da9dd3b bd58e89 da9dd3b 5341e74 9f97180 a240151 9f97180 5341e74 | 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 | FROM nvidia/cuda:12.6.3-devel-ubuntu22.04
# Create non-root user
RUN useradd -m -u 1000 user
# Set environment variables
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
API_AUTH_TOKEN=secret \
JWT_ALGORITHM=RS256 \
DASHBOARD_USERNAME=dashboard \
DASHBOARD_PASSWORD=secret \
SECRET_KEY_BASE=secret-key-base \
JWT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gzhmJ9TDanEzWdP1WG+\n0Ecwbe7f3bv6e5UUpvcT5q68IQJKP47AQdBAnSlFVi4X9SaurbWoXdS6jpmPpk24\nQvitzLNFphHdwjFBelTAOa6taZrSusoFvrtK9x5xsW4zzt/bkpUraNx82Z8MwLwr\nt6HlY7dgO9+xBAabj4t1d2t+0HS8O/ed3CB6T2lj6S8AbLDSEFc9ScO6Uc1XJlSo\nrgyJJSPCpNhSq3AubEZ1wMS1iEtgAzTPRDsQv50qWIbn634HLWxTP/UH6YNJBwzt\n3O6q29kTtjXlMGXCvin37PyX4Jy1IiPFwJm45aWJGKSfVGMDojTJbuUtM+8P9Rrn\nAwIDAQAB\n-----END PUBLIC KEY-----"
# Install minimal dependencies
RUN apt-get update && apt-get install -y \
wget \
curl \
unzip \
clang \
cuda-toolkit \
nginx \
build-essential \
cmake \
git \
libcurl4-openssl-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy llama.cpp server files from official image
COPY --from=ghcr.io/ggerganov/llama.cpp:server-cuda /app/llama-server $HOME/app/llama-server
COPY --from=ghcr.io/ggerganov/llama.cpp:server-cuda /app/*.so* $HOME/app/
RUN chmod +x $HOME/app/llama-server
# Install Node.js and pnpm
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get update && \
apt-get install -y nodejs && \
npm install -g corepack && \
rm -rf /var/lib/apt/lists/*
# Enable pnpm
RUN corepack enable && corepack prepare pnpm@latest --activate
# Create directories and set permissions
RUN mkdir -p /tmp/llamacpp && \
mkdir -p $HOME/models && \
mkdir -p $HOME/app && \
mkdir -p $HOME/app/docauth && \
mkdir -p $HOME/app/aia && \
mkdir -p /var/cache/nginx && \
mkdir -p /var/log/nginx && \
mkdir -p /var/lib/nginx && \
mkdir -p /run/nginx && \
touch /var/run/nginx.pid && \
chown -R user:user $HOME && \
chown -R user:user /var/cache/nginx && \
chown -R user:user /var/log/nginx && \
chown -R user:user /var/lib/nginx && \
chown -R user:user /var/run/nginx.pid && \
chown -R user:user /run/nginx
# Copy AI Assistant app
COPY --from=pspdfkit/ai-assistant:nightly /base $HOME/app/aia
COPY --chown=node:node service-config.yml /service-config.yml
RUN chown -R user:user $HOME/app/aia
# Copy nginx configuration and replace license key
COPY nginx.conf /etc/nginx/nginx.conf
RUN --mount=type=secret,id=DOCAUTH_LICENSE_KEY,mode=0444,required=true \
sed -i "s/\$DOCAUTH_LICENSE_KEY/$(cat /run/secrets/DOCAUTH_LICENSE_KEY)/g" /etc/nginx/nginx.conf
# Copy web files
COPY --chown=user:user index.html $HOME/app/docauth/
COPY --chown=user:user document-authoring.js $HOME/app/docauth/
COPY --chown=user:user Sample.docx $HOME/app/docauth/
# Copy start script
COPY --chown=user:user start-services.sh $HOME/app/
RUN chmod +x $HOME/app/start-services.sh
# Switch to non-root user
USER user
WORKDIR $HOME/app
# Download models
RUN wget -q https://huggingface.co/bartowski/gemma-2-2b-it-GGUF/resolve/main/gemma-2-2b-it-Q8_0.gguf -O $HOME/models/gemma-2b.gguf && \
wget -q https://huggingface.co/leliuga/all-MiniLM-L6-v2-GGUF/resolve/main/all-MiniLM-L6-v2.F16.gguf -O $HOME/models/embeddings.gguf
# Expose (7860, for Hugging Face, 4000 for AI Assistant)
EXPOSE 7860
CMD ["./start-services.sh"]
|