Files
whatsapp/docker-compose.prod.yml
T
Lizandro Guarnizo 3399d3cf41 fix: docker-compose.prod.yml usar red coolify externa (Coolify usa este archivo, no docker-compose.yml)
Coolify usa /artifacts/.../docker-compose.prod.yml en el deploy.
Ese archivo tenía 'whatsapp-network' local bridge — el contenedor nunca
se conectaba a la red 'coolify' donde está el Redis → SERVFAIL en DNS.

Cambios:
- networks: whatsapp-network → coolify (external: true)
- container_name: removido (Coolify asigna el suyo)
- healthcheck: timeout 5s→10s, start_period 30s→60s
2026-03-12 18:48:58 -05:00

79 lines
2.2 KiB
YAML

# Docker Compose para PRODUCCIÓN
# Base de datos: gestionada externamente (Coolify Database Resource o cualquier MySQL/MariaDB externo)
# Configurar DB_HOST, DB_NAME, DB_USER, DB_PASS en las variables de entorno de Coolify.
services:
# Aplicación PHP con Nginx - MODO PRODUCCIÓN
app:
build:
context: .
dockerfile: Dockerfile
args:
- APP_ENV=production
# container_name: NO definir — Coolify asigna su propio nombre
restart: always
# Coolify/Traefik gestiona el enrutamiento - no exponer puertos directamente
expose:
- "80"
volumes:
- app-logs:/var/www/html/logs
- app-uploads:/var/www/html/uploads
environment:
# Zona horaria Colombia
- TZ=America/Bogota
# Entorno
- APP_ENV=production
- APP_DEBUG=false
# Base de datos - configurar en Coolify Environment Variables
- DB_HOST=${DB_HOST:-mysql}
- DB_PORT=${DB_PORT:-3306}
- DB_NAME=${DB_NAME:-usite_whatsapp_bot}
- DB_USER=${DB_USER:-usite_whatsapp_user}
- DB_PASS=${DB_PASS}
# Redis — gestionado por Coolify (configurar REDIS_HOST en env vars)
- REDIS_HOST=${REDIS_HOST:-127.0.0.1}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
# WhatsApp API
- WHATSAPP_TOKEN=${WHATSAPP_TOKEN}
- WHATSAPP_PHONE_NUMBER_ID=${WHATSAPP_PHONE_NUMBER_ID}
- WEBHOOK_VERIFY_TOKEN=${WEBHOOK_VERIFY_TOKEN}
# Configuración de producción
- LOG_LEVEL=WARNING
- ENABLE_RATE_LIMIT=true
- DISPLAY_ERRORS=0
- ERROR_REPORTING=0
# PHP optimizado para producción
- PHP_MEMORY_LIMIT=512M
- PHP_MAX_EXECUTION_TIME=300
- PHP_OPCACHE_ENABLE=1
networks:
- coolify
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost/health.php || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# Redis: gestionado como Database Resource en Coolify (externo)
# Worker: corre dentro del contenedor app vía Supervisor
# Maintenance: deshabilitado en Coolify
volumes:
app-logs:
driver: local
app-uploads:
driver: local
networks:
coolify:
external: true