Dockerfile.devโข2.01 kB
# Development Dockerfile for AnyDocs MCP Server
FROM python:3.11-slim
# Set build arguments
ARG BUILD_DATE
ARG VERSION=dev
ARG VCS_REF
# Add metadata
LABEL maintainer="AnyDocs MCP Team" \
org.label-schema.build-date=$BUILD_DATE \
org.label-schema.name="anydocs-mcp-dev" \
org.label-schema.description="AnyDocs MCP Server - Development Environment" \
org.label-schema.version=$VERSION \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/your-org/anydocs-mcp" \
org.label-schema.schema-version="1.0"
# Install system dependencies
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
sqlite3 \
vim \
htop \
tree \
&& rm -rf /var/lib/apt/lists/*
# Create non-root user
RUN groupadd -r anydocs && useradd -r -g anydocs -s /bin/bash anydocs
# Set working directory
WORKDIR /app
# Install Python development tools including uv
RUN pip install --no-cache-dir --upgrade pip setuptools wheel uv
# Copy project configuration files
COPY pyproject.toml uv.lock ./
# Install dependencies using uv
RUN uv install --dev --frozen
# Install additional development tools
RUN pip install --no-cache-dir \
debugpy \
ipython \
jupyter \
notebook
# Create necessary directories
RUN mkdir -p data logs cache uploads backups .vscode && \
chown -R anydocs:anydocs /app
# Set environment variables
ENV PYTHONPATH=/app/src
ENV PYTHONUNBUFFERED=1
ENV ENVIRONMENT=development
ENV DEBUG=1
ENV LOG_LEVEL=DEBUG
# Development-specific settings
ENV FLASK_ENV=development
ENV FASTAPI_ENV=development
ENV RELOAD=1
# Health check (more lenient for development)
HEALTHCHECK --interval=60s --timeout=10s --start-period=60s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1
# Switch to non-root user
USER anydocs
# Expose ports (including debug port)
EXPOSE 8000 8001 5678
# Default command (can be overridden)
CMD ["python", "start.py", "--mode", "hybrid", "--debug"]