55 lines
1.4 KiB
Text
55 lines
1.4 KiB
Text
FROM python:3.11-slim-bookworm
|
|
|
|
# Install Node.js and npm
|
|
RUN apt-get update && apt-get install -y \
|
|
nginx \
|
|
curl \
|
|
libreoffice \
|
|
fontconfig \
|
|
imagemagick
|
|
|
|
RUN sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-6/policy.xml
|
|
|
|
|
|
# Install Node.js 20 using NodeSource repository
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
|
apt-get install -y nodejs
|
|
|
|
|
|
# Change working directory
|
|
WORKDIR /app
|
|
|
|
RUN ls -a
|
|
|
|
# Set environment variables
|
|
ENV APP_DATA_DIRECTORY=/app_data
|
|
ENV TEMP_DIRECTORY=/tmp/presenton
|
|
# ENV PYTHONPATH="${PYTHONPATH}:/app/servers/fastapi"
|
|
|
|
# Install ollama
|
|
# RUN curl -fsSL http://ollama.com/install.sh | sh
|
|
|
|
# Install dependencies for FastAPI
|
|
RUN pip install aiohttp aiomysql aiosqlite asyncpg fastapi[standard] \
|
|
pathvalidate pdfplumber chromadb sqlmodel \
|
|
anthropic google-genai openai fastmcp
|
|
RUN pip install docling --extra-index-url https://download.pytorch.org/whl/cpu
|
|
|
|
# Install dependencies for Next.js
|
|
WORKDIR /node_dependencies
|
|
COPY servers/nextjs/package.json servers/nextjs/package-lock.json ./
|
|
RUN npm install --verbose
|
|
|
|
# Install chrome for puppeteer
|
|
RUN npx puppeteer browsers install chrome@138.0.7204.94 --install-deps
|
|
|
|
RUN chmod -R 777 /node_dependencies
|
|
|
|
# Copy nginx configuration
|
|
COPY nginx.conf /etc/nginx/nginx.conf
|
|
|
|
# Expose the port
|
|
EXPOSE 80
|
|
|
|
# Start the servers
|
|
CMD ["node", "/app/start.js", "--dev"]
|