services: app: build: context: . dockerfile: Dockerfile container_name: ${NETGESCON_APP_CONTAINER_NAME:-netgescon_app} restart: unless-stopped env_file: - .env.docker.local environment: APP_ENV: local APP_DEBUG: "true" APP_URL: http://localhost:${APP_PORT:-8080} DB_CONNECTION: mysql DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal} DB_PORT: ${NETGESCON_DB_PORT:-3306} DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon} DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon} DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon} REDIS_HOST: redis REDIS_PORT: 6379 CACHE_STORE: file SESSION_DRIVER: file QUEUE_CONNECTION: database MAIL_MAILER: smtp MAIL_HOST: mailhog MAIL_PORT: 1025 FIX_PERMISSIONS: "true" WAIT_FOR_DB: "true" RUN_MIGRATIONS: ${RUN_MIGRATIONS:-false} extra_hosts: - "host.docker.internal:host-gateway" volumes: - ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage - ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache - public_data:/var/www/public networks: - netgescon_network - online_db_network depends_on: - redis queue: build: context: . dockerfile: Dockerfile container_name: ${NETGESCON_QUEUE_CONTAINER_NAME:-netgescon_queue} restart: unless-stopped env_file: - .env.docker.local environment: APP_ENV: local APP_DEBUG: "true" APP_URL: http://localhost:${APP_PORT:-8080} DB_CONNECTION: mysql DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal} DB_PORT: ${NETGESCON_DB_PORT:-3306} DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon} DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon} DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon} REDIS_HOST: redis REDIS_PORT: 6379 CACHE_STORE: file SESSION_DRIVER: file QUEUE_CONNECTION: database MAIL_MAILER: smtp MAIL_HOST: mailhog MAIL_PORT: 1025 FIX_PERMISSIONS: "true" WAIT_FOR_DB: "true" RUN_MIGRATIONS: "false" command: ["php", "artisan", "queue:work", "--verbose", "--tries=3", "--timeout=120"] extra_hosts: - "host.docker.internal:host-gateway" volumes: - ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage - ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache networks: - netgescon_network - online_db_network depends_on: - redis - app scheduler: build: context: . dockerfile: Dockerfile container_name: ${NETGESCON_SCHEDULER_CONTAINER_NAME:-netgescon_scheduler} restart: unless-stopped env_file: - .env.docker.local environment: APP_ENV: local APP_DEBUG: "true" APP_URL: http://localhost:${APP_PORT:-8080} DB_CONNECTION: mysql DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal} DB_PORT: ${NETGESCON_DB_PORT:-3306} DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon} DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon} DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon} REDIS_HOST: redis REDIS_PORT: 6379 CACHE_STORE: file SESSION_DRIVER: file QUEUE_CONNECTION: database MAIL_MAILER: smtp MAIL_HOST: mailhog MAIL_PORT: 1025 FIX_PERMISSIONS: "true" WAIT_FOR_DB: "true" RUN_MIGRATIONS: "false" command: ["php", "artisan", "schedule:work"] extra_hosts: - "host.docker.internal:host-gateway" volumes: - ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage - ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache networks: - netgescon_network - online_db_network depends_on: - redis - app nginx: image: nginx:alpine container_name: ${NETGESCON_NGINX_CONTAINER_NAME:-netgescon_nginx} restart: unless-stopped ports: - "${APP_PORT:-8080}:80" volumes: - public_data:/var/www/public:ro - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro networks: - netgescon_network depends_on: - app redis: image: redis:alpine container_name: ${NETGESCON_REDIS_CONTAINER_NAME:-netgescon_redis} restart: unless-stopped volumes: - redis_data:/data networks: - netgescon_network mailhog: image: mailhog/mailhog container_name: ${NETGESCON_MAILHOG_CONTAINER_NAME:-netgescon_mailhog} ports: - "${MAILHOG_SMTP_PORT:-1025}:1025" - "${MAILHOG_UI_PORT:-8025}:8025" networks: - netgescon_network host_mysql_bridge: image: alpine/socat container_name: ${NETGESCON_HOST_MYSQL_BRIDGE_CONTAINER_NAME:-netgescon_host_mysql_bridge} restart: unless-stopped network_mode: host command: - TCP-LISTEN:${HOST_MYSQL_BRIDGE_PORT:-13306},fork,reuseaddr,bind=0.0.0.0 - TCP:127.0.0.1:${HOST_MYSQL_TARGET_PORT:-3306} volumes: redis_data: public_data: networks: netgescon_network: driver: bridge online_db_network: external: true name: ${NETGESCON_EXTERNAL_NETWORK:-docker_netgescon_online}