volumes: certbot_volume: nginx_log_volume: mysql_data_volume: mysql_backup_volume: php_var_volume: rabbitmq_volume: redis_volume: caddy_data: caddy_config: networks: dd: name: ${NETWORK} ingress: external: true services: db: image: mariadb:10.3.25 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_USER: ${MYSQL_USER} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: - ${MYSQL_PORT}:3306 volumes: - mysql_data_volume:/var/lib/mysql - mysql_backup_volume:/backups networks: - dd php: image: registry.dot-dot.ru/dot-dot:${DOTDOT_TAG} # command: "php-fpm && nginx -g 'daemon off;'" restart: unless-stopped volumes: - ./configs/php/.env:/application/.env - ./configs/php/.env.local:/application/.env.local - php_var_volume:/application/var depends_on: - db networks: - dd static: image: registry.dot-dot.ru/dot-dot-static:${DOTDOT_TAG} restart: unless-stopped networks: - dd nuxt: image: registry.dot-dot.ru/front:${FRONT_TAG} restart: unless-stopped command: npm run start volumes: - ./configs/nuxt/.env:/app/.env - ./configs/nuxt/entrypoint.sh:/entrypoint.sh env_file: - ./configs/nuxt/.env entrypoint: /entrypoint.sh networks: - dd lms: image: registry.dot-dot.ru/lms:${LMS_TAG} restart: unless-stopped command: npm run start volumes: - ./configs/lms/.env:/app/.env - ./configs/lms/entrypoint.sh:/entrypoint.sh env_file: - ./configs/lms/.env entrypoint: /entrypoint.sh networks: - dd admin: image: registry.dot-dot.ru/dashboard:${DASHBORD_TAG} command: frankenphp php-server -r /application/public restart: unless-stopped environment: - SERVER_NAME=testbadmin.dot-dot.ru volumes: - ./configs/dashboard/.env:/application/.env depends_on: - db networks: dd: ingress: aliases: - ${NETWORK}-admin nginx: image: nginx:1.25.3-alpine3.18 restart: unless-stopped volumes: - ./configs/nginx/conf.d:/etc/nginx/conf.d - ./configs/nginx/nginx.conf:/etc/nginx/nginx.conf - ./configs/nginx/www:/var/www - ./configs/nginx/ssl:/etc/nginx/ssl - ./configs/nginx/other:/etc/nginx/other - certbot_volume:/etc/letsencrypt - nginx_log_volume:/var/log/nginx depends_on: - nuxt - php - static networks: dd: ingress: aliases: - ${NETWORK}-nginx rabbitmq: image: rabbitmq:3.12.1-management-alpine restart: unless-stopped hostname: ${COMPOSE_PROJECT_NAME} volumes: - rabbitmq_volume:/var/lib/rabbitmq - ./configs/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins - ./configs/rabbitmq/definitions.json:/etc/rabbitmq/definitions.json - ./configs/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf environment: - RABBITMQ_DEFAULT_USER=${RABBITMQ_USERNAME} - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} - RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf networks: dd: {} redis: image: redis:7.2.4-alpine3.19 restart: unless-stopped volumes: - redis_volume:/data - ./configs/redis:/usr/local/etc/redis environment: - REDIS_PASSWORD=${REDIS_PASSWORD} - REDIS_PORT=6379 networks: dd: {} redis-exporter: image: oliver006/redis_exporter:v1.59.0 command: - "--redis.addr=redis://redis:6379" - "--redis.password=${REDIS_PASSWORD}" networks: dd: {}