33 lines
1.2 KiB
YAML
33 lines
1.2 KiB
YAML
services:
|
|
sms-campaign:
|
|
build:
|
|
context: .
|
|
dockerfile: ./docker/dockerfile
|
|
container_name: sms-campaign-manager
|
|
ports:
|
|
- "5000:5000" # Web interface
|
|
- "5037:5037" # ADB server
|
|
volumes:
|
|
- ./data:/app/data # SQLite database
|
|
- ./uploads:/app/uploads # CSV uploads
|
|
- ./logs:/app/logs # Logs
|
|
- ./src:/app/src # Live source for development
|
|
- ./src/static:/app/src/static # Static assets
|
|
- ./src/templates:/app/src/templates # Templates
|
|
- /dev/bus/usb:/dev/bus/usb # USB devices (for direct USB connection)
|
|
environment:
|
|
PHONE_IP: ${PHONE_IP:-10.0.0.193}
|
|
ADB_PORT: ${ADB_PORT:-5555}
|
|
FLASK_ENV: ${FLASK_ENV:-production}
|
|
SECRET_KEY: ${SECRET_KEY:-change-me-in-production}
|
|
network_mode: host # Required for ADB network connection (host mode needed for ADB)
|
|
privileged: true # Required for USB access
|
|
restart: unless-stopped
|
|
stop_grace_period: 30s # Give container 30 seconds to gracefully shutdown
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|