MCP server can now manage HAProxy running on a remote host via SSH. When SSH_HOST env var is set, all file I/O and subprocess commands (podman, acme.sh, openssl) are routed through SSH instead of local exec. - Add ssh_ops.py module with remote_exec, run_command, file I/O helpers - Modify file_ops.py to support remote reads/writes via SSH - Update all tools (domains, certificates, health, configuration) for SSH - Fix domains.py: replace direct fcntl usage with file_lock context manager - Add openssh-client to Docker image for SSH connectivity - Update k8s deployment with SSH env vars and SSH key secret mount Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
683 B
Docker
26 lines
683 B
Docker
FROM python:3.11-slim AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
|
|
|
|
COPY haproxy_mcp/pyproject.toml haproxy_mcp/uv.lock ./haproxy_mcp/
|
|
|
|
RUN cd haproxy_mcp && uv pip install --system --no-cache -e .
|
|
|
|
COPY haproxy_mcp/ ./haproxy_mcp/
|
|
|
|
FROM python:3.11-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends openssh-client && rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
|
|
COPY --from=builder /usr/local/bin /usr/local/bin
|
|
COPY --from=builder /app/haproxy_mcp ./haproxy_mcp
|
|
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["python", "-m", "haproxy_mcp"]
|