Files
meshcore-bot/docker-compose.yml
agessaman 6a1a78cb2a chore: Update Docker configuration for improved image management
- Modified docker-compose.yml to support using a pre-built image from GitHub Container Registry, with automatic tagging based on the current git branch.
- Enhanced docker-setup.sh to detect the current git branch and set the Docker image tag accordingly, creating or updating the .env file with the appropriate configuration.
2026-01-17 10:40:25 -08:00

56 lines
1.9 KiB
YAML

services:
meshcore-bot:
# Option 1: Build locally - uncomment to build from source
# build:
# context: .
# dockerfile: Dockerfile
# Option 2: Use pre-built image from GitHub Container Registry (default)
# Image tag is automatically set based on current git branch via .env file
# Set DOCKER_IMAGE_REGISTRY in .env to override (default: ghcr.io/agessaman/meshcore-bot)
image: ${DOCKER_IMAGE_REGISTRY:-ghcr.io/agessaman/meshcore-bot}:${DOCKER_IMAGE_TAG:-latest}
container_name: meshcore-bot
restart: unless-stopped
# Device access for serial ports
# NOTE: Docker Desktop on macOS does NOT support device passthrough
# Options for macOS:
# 1. Use TCP connection (if device supports it) - configure in config.ini
# 2. Use a serial-to-TCP bridge (e.g., socat) on the host
# 3. Run the bot natively on macOS instead of Docker
# For Linux: Uncomment and adjust device path below
# devices:
# - /dev/ttyUSB0:/dev/ttyUSB0
# Network mode for host access (needed for BLE and some serial setups)
# Uncomment if you need host network access
# network_mode: host
# Environment variables (optional, can override config.ini settings)
environment:
- TZ=America/Los_Angeles # Set your timezone
# - PYTHONUNBUFFERED=1 # Already set in Dockerfile
# Volume mappings for persistent data
volumes:
# Configuration file
- ./data/config:/data/config:ro
# Databases (main bot database and web viewer database)
- ./data/databases:/data/databases
# Logs
- ./data/logs:/data/logs
# Backups (optional)
- ./data/backups:/data/backups
# Port mappings (if web viewer is enabled)
# Uncomment and adjust if using web viewer
ports:
- "8082:8080"
# Logging configuration
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"