cm_bot_v2/docker-compose.yml

112 lines
3.5 KiB
YAML

services:
# Telegram Bot Service
telegram-bot:
image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-telegram:${DOCKER_IMAGE_TAG:-latest}"
container_name: ${CM_DEPLOY_NAME:-cm}-telegram-bot
restart: unless-stopped
environment:
PYTHONUNBUFFERED: "1"
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
TELEGRAM_ALERT_CHAT_ID: ${TELEGRAM_ALERT_CHAT_ID:-}
TELEGRAM_ALERT_BOT_TOKEN: ${TELEGRAM_ALERT_BOT_TOKEN:-}
CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN}
CM_AGENT_ID: ${CM_AGENT_ID}
CM_AGENT_PASSWORD: ${CM_AGENT_PASSWORD}
CM_SECURITY_PIN: ${CM_SECURITY_PIN}
CM_BOT_BASE_URL: ${CM_BOT_BASE_URL}
DB_HOST: ${DB_HOST}
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
DB_PORT: ${DB_PORT}
DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT}
DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES}
DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- bot-network
depends_on:
- api-server
# API Server Service
api-server:
image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-api:${DOCKER_IMAGE_TAG:-latest}"
container_name: ${CM_DEPLOY_NAME:-cm}-api-server
restart: unless-stopped
environment:
PYTHONUNBUFFERED: "1"
CM_DEBUG: ${CM_DEBUG:-false}
DB_HOST: ${DB_HOST}
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
DB_PORT: ${DB_PORT}
DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT}
DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES}
DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- bot-network
# Web View Service
web-view:
image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-web:${DOCKER_IMAGE_TAG:-latest}"
container_name: ${CM_DEPLOY_NAME:-cm}-web-view
restart: unless-stopped
ports:
- "${CM_WEB_HOST_PORT:-8001}:8000"
environment:
PYTHONUNBUFFERED: "1"
CM_DEBUG: ${CM_DEBUG:-false}
API_BASE_URL: http://api-server:3000
CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- bot-network
depends_on:
- api-server
transfer-bot:
image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-transfer:${DOCKER_IMAGE_TAG:-latest}"
container_name: ${CM_DEPLOY_NAME:-cm}-transfer-bot
restart: unless-stopped
environment:
PYTHONUNBUFFERED: "1"
API_BASE_URL: http://api-server:3000
CM_TRANSFER_MAX_THREADS: "20"
CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN}
CM_AGENT_ID: ${CM_AGENT_ID}
CM_AGENT_PASSWORD: ${CM_AGENT_PASSWORD}
CM_SECURITY_PIN: ${CM_SECURITY_PIN}
CM_BOT_BASE_URL: ${CM_BOT_BASE_URL}
DB_HOST: ${DB_HOST}
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
DB_PORT: ${DB_PORT}
DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT}
DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES}
DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
mem_limit: 6g
cpus: 2
networks:
- bot-network
depends_on:
- api-server
- web-view
networks:
bot-network:
name: ${CM_DEPLOY_NAME:-cm}-network
driver: bridge