hfflaiTRYnew / Dockerfile
unknownfriend00007's picture
Update Dockerfile
13c0ea8 verified
FROM node:20-alpine
USER root
# Arguments for paths
ARG FLOWISE_PATH=/usr/local/lib/node_modules/flowise
ARG BASE_PATH=/data/.flowise
ARG DATABASE_PATH=$BASE_PATH
ARG SECRETKEY_PATH=$BASE_PATH
ARG LOG_PATH=$BASE_PATH/logs
ARG BLOB_STORAGE_PATH=$BASE_PATH/storage
# Install dependencies (including tools for import script)
RUN apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium curl jq bash
# Puppeteer config
ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Install Flowise globally with latest version
RUN npm install -g flowise@latest
# Configure Flowise directories
RUN mkdir -p $BASE_PATH $LOG_PATH $FLOWISE_PATH/uploads /data/chatflows && \
chmod -R 777 $LOG_PATH $FLOWISE_PATH $BASE_PATH
# Set working directory
WORKDIR /data
# API Keys from HF Secrets
ENV OPENAI_API_KEY=${OPENAI_API_KEY}
ENV ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
ENV MISTRAL_API_KEY=${MISTRAL_API_KEY}
ENV GEMINI_API_KEY=${GEMINI_API_KEY}
ENV HUGGINGFACE_API_KEY=${HUGGINGFACE_API_KEY}
ENV GROQ_API_KEY=${GROQ_API_KEY}
# Database Configuration
ENV DATABASE_TYPE=${DATABASE_TYPE}
ENV DATABASE_HOST=${DATABASE_HOST}
ENV DATABASE_PORT=${DATABASE_PORT}
ENV DATABASE_USER=${DATABASE_USER}
ENV DATABASE_PASSWORD=${DATABASE_PASSWORD}
ENV DATABASE_NAME=${DATABASE_NAME}
ENV DATABASE_SSL=${DATABASE_SSL}
# Flowise paths using the official structure
ENV DATABASE_PATH=$DATABASE_PATH
ENV SECRETKEY_PATH=$SECRETKEY_PATH
ENV LOG_PATH=$LOG_PATH
ENV BLOB_STORAGE_PATH=$BLOB_STORAGE_PATH
# Optional: Add security settings (recommended for production)
ENV CUSTOM_MCP_SECURITY_CHECK=true
ENV CUSTOM_MCP_PROTOCOL=sse
# Expose port
EXPOSE 7860
# Copy import files
COPY start.sh /data/start.sh
COPY chatflows/ /data/chatflows/
RUN chmod +x /data/start.sh
# Start with import script
CMD ["/data/start.sh"]