Files
venom/docker-compose.yml
2026-04-27 15:53:22 +00:00

52 lines
1.5 KiB
YAML

version: '3.8'
services:
mongo:
image: mongo:latest
container_name: venom-mongo
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: venom
MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS}
volumes:
- /root/apps/venom/data/db:/data/db
- /root/apps/venom/data/configdb:/data/configdb
networks:
- venom-network
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
bot:
build:
context: .
dockerfile: Dockerfile
container_name: venom-bot
restart: unless-stopped
depends_on:
mongo:
condition: service_healthy
environment:
# Private key for dotenvx decryption
DOTENV_PRIVATE_KEY_LOCAL: ${DOTENV_PRIVATE_KEY_LOCAL}
# Override MongoDB URI to use container hostname (password is URL-encoded)
MONGODB_URI: mongodb://venom:${DB_PASS_ENCODED}@mongo:27017/venom?authSource=admin&authMechanism=SCRAM-SHA-256
volumes:
# Mount source code and data (for development/hot-reload if needed)
- /root/apps/venom/data/brain.dat:/app/data/brain.dat
- /root/apps/venom/logs:/app/logs
# Mount env files for dotenvx
- /root/apps/venom/.env.local:/app/.env.local:ro
- /root/apps/venom/.env.keys:/app/.env.keys:ro
networks:
- venom-network
stop_signal: SIGINT
stop_grace_period: 30s
networks:
venom-network:
driver: bridge