Files
mev-beta/docker-compose.yml
Administrator 1a31836428 feat(docker): complete production deployment with data volume and arbitrage enabled
Final production deployment fixes to enable full MEV bot functionality.

Changes:
- Add data volume mount to docker-compose.yml for database persistence
- Enable arbitrage service in config.dev.yaml
- Add arbitrage configuration section with default values

Testing:
- Container running and healthy
- Processing Arbitrum blocks successfully
- Running arbitrage scans every 5 seconds
- Database created and operational
- Metrics server accessible on port 9090

Status:
- Container: mev-bot-production
- Health: Up and healthy
- Blocks processed: 17+
- Arbitrage scans: 10+ completed
- Auto-restart: enabled (restart: always)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 04:34:05 +01:00

46 lines
1.2 KiB
YAML

version: '3.8'
services:
mev-bot:
build:
context: .
dockerfile: Dockerfile
image: mev-bot:latest
container_name: mev-bot-production
restart: always
volumes:
# Mount logs directory for persistent logs
- ./logs:/app/logs
# Mount data directory for database
- ./data:/app/data
# Mount development config (simpler, no YAML parsing issues)
- ./config/config.dev.yaml:/app/config/config.yaml:ro
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- ARBITRUM_RPC_ENDPOINT=${ARBITRUM_RPC_ENDPOINT:-https://arbitrum-rpc.publicnode.com}
# Add any other environment variables from .env file
env_file:
- .env
ports:
- "${PORT:-8080}:8080"
- "${METRICS_PORT:-9090}:9090"
command: ["start"]
# Health check to ensure the bot is running properly
healthcheck:
test: ["CMD-SHELL", "pgrep -f mev-bot || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Security options
security_opt:
- no-new-privileges:true
# Resource limits (adjust as needed)
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M