Docker Infrastructure
Relevant source files
The following files were used as context for generating this wiki page:
The Docker infrastructure in the Arclio MCP Tooling project is designed to provide a consistent, containerized environment for development and integration testing. Its primary purpose is to orchestrate external services—specifically vector databases and caching layers—that are required by the various Model Context Protocol (MCP) servers within the monorepo.
By utilizing Docker, developers can spin up a local instance of the Weaviate vector database and Redis cache with pre-configured settings tailored for the weaviate-mcp package. This ensures that integration tests, such as the ingestion pipeline tests, can run against a reliable and reproducible environment.
Sources: docker-compose.weaviate.yml:1-10, README.md:1-10, packages/weaviate-mcp/README.md:15-25
Weaviate Vector Database
The core component of the Docker infrastructure is the Weaviate service. It is configured to run version 1.27.0 of the Weaviate vector database, exposing both HTTP and gRPC ports for communication with the MCP server.
Service Configuration
The Weaviate container is configured with several environment variables to optimize it for development and semantic search. It specifically enables the text2vec-openai and generative-openai modules to support AI-driven vector operations.
The diagram shows the network relationship between the core Weaviate service, its optional Redis cache, and external dependencies.
Sources: docker-compose.weaviate.yml:12-45, packages/weaviate-mcp/README.md:105-115
Resource Management and Limits
To ensure stability on development machines, the Weaviate service includes specific resource constraints and health checks.
| Feature | Configuration / Value | Description |
|---|---|---|
| Memory Limit | 2G | Maximum RAM the container can consume. |
| CPU Limit | 2.0 | Maximum CPU cores allocated. |
| Healthcheck | http://localhost:8080/v1/.well-known/ready | Ensures the API is ready to accept requests. |
| Persistence | ./data/weaviate | Local directory bound to /var/lib/weaviate. |
| GOMAXPROCS | 4 | Limits the number of threads for the Go runtime. |
Sources: docker-compose.weaviate.yml:47-90
Caching Infrastructure (Redis)
An optional Redis service is included in the Docker orchestration to provide a high-performance caching layer for advanced features. It uses the redis:7.2-alpine image to maintain a small footprint.
Redis Operational Parameters
The Redis instance is configured with persistent storage (Append Only File) and an eviction policy to manage memory usage during development.
- Eviction Policy:
allkeys-lru(Evicts the least recently used keys when memory is full). - Memory Limit: 256MB.
- Port: 6379 (Bound to 127.0.0.1 for local access).
Sources: docker-compose.weaviate.yml:92-115
Network and Volume Architecture
The infrastructure utilizes a custom bridge network and local bind mounts to ensure data persistence across container restarts.
Data Persistence
The project uses local driver volumes with bind options to map container data to the host filesystem. This allows developers to inspect database files directly in the ./data directory of the monorepo root.
The diagram illustrates the mapping between host directories and container-internal storage paths.
Sources: docker-compose.weaviate.yml:117-129
Network Isolation
All services are joined to a network named weaviate-mcp-network using the bridge driver. This provides a dedicated namespace for the services to communicate with each other while being accessible from the host.
Sources: docker-compose.weaviate.yml:132-135
Integration with MCP Servers
The Docker infrastructure is primarily consumed by the weaviate-mcp package during its testing phase.
Usage in Testing
Integration tests utilize the Docker-managed Weaviate instance to validate the ingestion service. For example, test_ingestion_integration.py mocks HTTP responses but relies on the structure and API patterns defined by the Weaviate service setup.
# Usage command to bring up the environment
# docker-compose -f docker-compose.weaviate.yml up -d
Sources: docker-compose.weaviate.yml:6-7, tests/weaviate-mcp/integration/test_ingestion_integration.py:20-40
Summary
The Docker infrastructure provides a standardized, isolated, and resource-constrained environment for the Arclio MCP Tooling. By encapsulating Weaviate and Redis, the project ensures that developers can easily set up a local vector database environment that mirrors the requirements of the MCP servers, facilitating robust integration testing and semantic search development.