49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
esxi-mcp-server:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: esxi-mcp-server
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
# Mount configuration file
|
|
- ./config.yaml:/app/config/config.yaml:ro
|
|
# Mount logs directory
|
|
- ./logs:/app/logs
|
|
environment:
|
|
# Configuration can be overridden via environment variables
|
|
- VCENTER_HOST=${VCENTER_HOST:-}
|
|
- VCENTER_USER=${VCENTER_USER:-}
|
|
- VCENTER_PASSWORD=${VCENTER_PASSWORD:-}
|
|
- VCENTER_DATACENTER=${VCENTER_DATACENTER:-}
|
|
- VCENTER_CLUSTER=${VCENTER_CLUSTER:-}
|
|
- VCENTER_DATASTORE=${VCENTER_DATASTORE:-}
|
|
- VCENTER_NETWORK=${VCENTER_NETWORK:-VM Network}
|
|
- VCENTER_INSECURE=${VCENTER_INSECURE:-true}
|
|
- MCP_API_KEY=${MCP_API_KEY:-}
|
|
- MCP_LOG_LEVEL=${MCP_LOG_LEVEL:-INFO}
|
|
networks:
|
|
- mcp-network
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
# Resource limits
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
cpus: '0.5'
|
|
reservations:
|
|
memory: 256M
|
|
cpus: '0.25'
|
|
|
|
networks:
|
|
mcp-network:
|
|
driver: bridge |