PR Checks / hadolint (pull_request) Successful in 23s
Docker Build and Push / test (pull_request) Successful in 5m19s
PR Checks / build-test (pull_request) Successful in 47s
Docker Build and Push / integration-test (pull_request) Successful in 5m30s
PR Checks / pytest (pull_request) Successful in 3m7s
Docker Build and Push / build (pull_request) Successful in 3m14s
The integration test job has been failing intermittently on main and on open pull requests with `httpx.ReadTimeout: timed out` on the first write to Qdrant, while `GET /collections` and `/healthz` kept answering. Cause: the qdrant-client default request timeout is 5 seconds, and the job only waits for `/healthz`, which is served before the storage engine accepts writes. On a shared runner doing several builds at once, the first collection creation or indexing exceeds 5s and the whole fixture errors out. - pin qdrant/qdrant to v1.19 (the digest `latest` and the cluster already run) and let Renovate track the pin in the workflows as well - wait for a real write round-trip (create + delete a probe collection) instead of `/healthz` alone, and dump the container logs if it never becomes writable - make the Qdrant client timeout configurable via QDRANT_TIMEOUT and set it to 60s in CI, where there is no latency SLA
32 lines
919 B
YAML
32 lines
919 B
YAML
services:
|
|
qdrant:
|
|
image: docker.io/qdrant/qdrant:v1.19
|
|
container_name: mcp_maildir_qdrant
|
|
ports:
|
|
- "127.0.0.1:6333:6333" # REST API
|
|
- "127.0.0.1:6334:6334" # gRPC API
|
|
volumes:
|
|
- ./qdrant_storage:/qdrant/storage:z
|
|
restart: unless-stopped
|
|
|
|
mcp-server:
|
|
build:
|
|
context: .
|
|
dockerfile: pkg/Dockerfile
|
|
container_name: mcp_maildir_server
|
|
ports:
|
|
- "127.0.0.1:8000:8000" # Expose the MCP HTTP (SSE) server
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
# Override Qdrant URL to point to the docker-compose service
|
|
- QDRANT_URL=http://qdrant:6333
|
|
volumes:
|
|
# Mount the source code for hot-reloading (optional)
|
|
- ./src:/app/src:ro,z
|
|
# Mount the maildir dump as read-only.
|
|
# Ensure you set MAILDIR_PATH in your .env file
|
|
- ${MAILDIR_PATH:-./maildir_dump}:/path/to/your/maildir/dump:ro,z
|
|
depends_on:
|
|
- qdrant
|