my-private-llm / Dockerfile
Keyan2006's picture
Update Dockerfile
193b426 verified
FROM mintplexlabs/anythingllm:master
USER root
# 1. Install sync tools
RUN apt-get update && apt-get install -y python3-pip && \
pip3 install --break-system-packages huggingface_hub
# 2. Set environment variables (Absolute paths)
ENV STORAGE_DIR="/app/server/storage"
ENV COLLECTOR_HOTDIR="/app/server/storage/collector/hotdir"
ENV NODE_ENV="production"
# 3. Create folders, fix permissions, and force-map the root
RUN mkdir -p /app/server/storage/collector/hotdir && \
mkdir -p /app/server/storage/vector-cache && \
# THE CRITICAL STEP: Completely remove the root /collector and link it to our writable storage
rm -rf /collector && \
ln -s /app/server/storage/collector /collector && \
# Set permissions for the user '1000' (Hugging Face default)
chown -R 1000:1000 /app && \
chmod -R 777 /app/server/storage
# 4. Create the Startup & Sync script
RUN echo '#!/bin/bash\n\
# A. Get data from Dataset\n\
huggingface-cli download Keyan2006/questions-from-adda --local-dir /app/server/storage --repo-type dataset || echo "New Setup"\n\
\n\
# B. Sync to Dataset every 5 minutes\n\
(while true; do \n\
sleep 300; \n\
huggingface-cli upload Keyan2006/questions-from-adda /app/server/storage . --repo-type dataset --token $HF_TOKEN --quiet; \n\
done) &\n\
\n\
# C. Start AnythingLLM\n\
node /app/server/index.js' > /app/start.sh && chmod +x /app/start.sh
USER 1000
EXPOSE 3001
CMD ["/app/start.sh"]