--- version: "3.1" services: soketi: image: "quay.io/soketi/soketi:latest-16-alpine" environment: SOKETI_DEBUG: ${SOKETI_DEBUG} SOKETI_METRICS_SERVER_PORT: ${SOKETI_METRICS_SERVER_PORT} SOKETI_DEFAULT_APP_ID: ${SOKETI_DEFAULT_APP_ID} SOKETI_DEFAULT_APP_KEY: ${SOKETI_DEFAULT_APP_KEY} SOKETI_DEFAULT_APP_SECRET: ${SOKETI_DEFAULT_APP_SECRET} SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES: ${SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES} SOKETI_DEFAULT_APP_USER_AUTHENTICATION: ${SOKETI_DEFAULT_APP_USER_AUTHENTICATION} ports: - "${SOKETI_PORT:-6001}:6001" - "${SOKETI_METRICS_SERVER_PORT:-9601}:9601" networks: - ns-eatvio labels: - "traefik.enable=false" restart: always mysql: image: "mysql:8.0" working_dir: /application networks: - ns-eatvio volumes: - ".:/application" - "./mysql_data:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: - "1094:3306" labels: - "traefik.enable=false" restart: always php-fpm: build: phpdocker/php-fpm working_dir: /application environment: - TZ=Europe/Moscow depends_on: - mysql networks: - ns-eatvio volumes: - "./app:/application" - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" labels: - "traefik.enable=false" restart: always frontend: build: phpdocker/front-end command: "npm run watch" working_dir: /application environment: - TZ=Europe/Moscow depends_on: - mysql - php-fpm networks: - ns-eatvio volumes: - "./app:/application" labels: - "traefik.enable=false" restart: always worker: build: phpdocker/worker working_dir: /application environment: - TZ=Europe/Moscow command: "service supervisor start" depends_on: - mysql - php-fpm networks: - ns-eatvio volumes: - "./app:/application" - "./phpdocker/worker/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" - "./phpdocker/worker/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf" labels: - "traefik.enable=false" restart: always webserver: image: "nginx:alpine" working_dir: /application restart: always depends_on: - php-fpm - soketi volumes: - "./app:/application" - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" - "./phpdocker/nginx/alex.eatvio.local+4.pem:/etc/nginx/alex.eatvio.local+4.pem" - "./phpdocker/nginx/alex.eatvio.local+4-key.pem:/etc/nginx/alex.eatvio.local+4-key.pem" - "./phpdocker/nginx/socket.alex.eatvio.local+4.pem:/etc/nginx/socket.alex.eatvio.local+4.pem" - "./phpdocker/nginx/socket.alex.eatvio.local+4-key.pem:/etc/nginx/socket.alex.eatvio.local+4-key.pem" ports: - "1092:80" - "10443:5000" networks: - web - ns-eatvio mailhog: image: "mailhog/mailhog" ports: - "8082:8025" networks: - ns-eatvio typesense: image: typesense/typesense:26.0 restart: on-failure expose: - 8108 ports: - 8108:8108 networks: - ns-eatvio - web volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" networks: web: external: true ns-eatvio: external: false ipam: config: - subnet: 172.118.0.0/28