services: db: image: timescale/timescaledb:latest-pg14 restart: always environment: - POSTGRES_USER=${DB_USER} - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=${DB_NAME} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5433:5432" # Busca la sección healthcheck dentro de 'db' y cámbiala por esta: healthcheck: # CORRECCIÓN DEFINITIVA: Usamos las variables de tu .env test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"] interval: 10s timeout: 5s retries: 5 agrobot: build: ./python_worker restart: always environment: - PYTHONUNBUFFERED=1 - DB_HOST=db - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASSWORD=${DB_PASSWORD} - SENSOR_LAT=37.28 - SENSOR_LON=-5.92 depends_on: db: condition: service_healthy # 🛡️ PROTECCIÓN DE RECURSOS (Vital para Azure y Hardware viejo) deploy: resources: limits: cpus: '0.50' memory: 256M reservations: memory: 64M grafana: image: grafana/grafana:latest restart: always ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=${GF_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD=${GF_ADMIN_PASSWORD} volumes: - grafana_data:/var/lib/grafana depends_on: - db deploy: resources: limits: memory: 512M adminer: image: adminer restart: always ports: - "8080:8080" deploy: resources: limits: memory: 128M volumes: postgres_data: grafana_data: