| |
| FROM python:3.12-slim |
|
|
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| curl \ |
| ca-certificates \ |
| gnupg \ |
| git \ |
| wget \ |
| unzip \ |
| inotify-tools \ |
| ffmpeg \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh |
| ENV PATH="/root/.local/bin:$PATH" |
|
|
| WORKDIR /app |
|
|
| COPY pyproject.toml ./ |
| COPY requirements.txt ./ |
| COPY README.md ./ |
|
|
| RUN uv pip install --system \ |
| "pydantic>=2.0" \ |
| "httpx" \ |
| "requests" \ |
| "pyyaml" \ |
| "jinja2" \ |
| "rich" \ |
| "tenacity" \ |
| "python-dotenv" \ |
| "fire" \ |
| "openai" \ |
| "anthropic>=0.39.0" \ |
| "prompt_toolkit" \ |
| "typer" \ |
| "platformdirs" \ |
| "python-telegram-bot>=20.0" \ |
| "aiohttp>=3.9.0" \ |
| "edge-tts" \ |
| "faster-whisper>=1.0.0" \ |
| "firecrawl-py" \ |
| "parallel-web>=0.4.2" \ |
| "fal-client" \ |
| "croniter" \ |
| "slack-bolt>=1.18.0" \ |
| "slack-sdk>=3.27.0" \ |
| "mcp>=1.2.0" |
|
|
| COPY agent/ ./agent/ |
| COPY tools/ ./tools/ |
| COPY gateway/ ./gateway/ |
| COPY hermes_cli/ ./hermes_cli/ |
| COPY cron/ ./cron/ |
| COPY honcho_integration/ ./honcho_integration/ |
| COPY acp_adapter/ ./acp_adapter/ |
| COPY run_agent.py ./ |
| COPY model_tools.py ./ |
| COPY toolsets.py ./ |
| COPY cli.py ./ |
| COPY hermes_state.py ./ |
| COPY hermes_constants.py ./ |
| COPY hermes_time.py ./ |
| COPY utils.py ./ |
| COPY batch_runner.py ./ |
| COPY trajectory_compressor.py ./ |
| COPY toolset_distributions.py ./ |
|
|
| COPY cli-config.yaml.example ./ |
| COPY .env.example ./ |
|
|
| RUN git submodule update --init --recursive || true |
|
|
| RUN uv pip install --system -e . |
|
|
| COPY setup.sh /usr/local/bin/setup.sh |
| COPY hermes_run.py /usr/local/bin/hermes_run.py |
| RUN chmod +x /usr/local/bin/setup.sh /usr/local/bin/hermes_run.py |
|
|
| RUN mkdir -p /root/.hermes/workspace/skills |
| RUN mkdir -p /root/.hermes/workspace/memory |
| RUN mkdir -p /root/.hermes/sessions |
|
|
| ENV HERMES_HOME=/root/.hermes |
| ENV HERMES_WORKSPACE=/root/.hermes/workspace |
| ENV PYTHONUNBUFFERED=1 |
|
|
| EXPOSE 7860 |
|
|
| HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ |
| CMD curl -f http://localhost:7860/ || exit 1 |
|
|
| ENTRYPOINT ["/usr/local/bin/setup.sh"] |