version: "3.8" services: app: build: context: . dockerfile: Dockerfile container_name: dummybot_app restart: unless-stopped working_dir: /var/www volumes: - .:/var/www environment: - AUTO_MIGRATE=${AUTO_MIGRATE:-0} networks: - laravel webserver: image: nginx:alpine container_name: dummybot_web restart: unless-stopped expose: - 80 volumes: - .:/var/www - ./nginx.conf:/etc/nginx/conf.d/default.conf networks: - laravel - proxy depends_on: - app db: image: mysql:8.0 container_name: dummybot_db restart: unless-stopped environment: MYSQL_DATABASE: ${DB_DATABASE:-dummybot} MYSQL_USER: ${DB_USERNAME:-dummybot} MYSQL_PASSWORD: ${DB_PASSWORD:-dummybot} MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root} volumes: - dbdata:/var/lib/mysql networks: - laravel # ───────────────────────────────────────────────────────────── # Túnel socat para exponer el backend en :18080 sin TLS. # Útil mientras el proxy-manager no tiene host para dummybot. # Si ya tienes HTTPS, este contenedor es opcional. # ───────────────────────────────────────────────────────────── expose: image: alpine/socat container_name: dummybot_expose restart: unless-stopped ports: - "18080:80" command: TCP-LISTEN:80,fork,reuseaddr TCP:dummybot_web:80 networks: - proxy depends_on: - webserver volumes: dbdata: networks: laravel: proxy: external: true