Files
eatvio-infra/docker-compose.yml

144 lines
3.6 KiB
YAML

---
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