config_c2d/docker-compose.yml

232 lines
5.6 KiB
YAML

version: "3.3"
volumes:
certbot_volume:
nginx_log_volume:
mysql_data_volume:
mysql_backup_volume:
php_var_volume:
bookstack_data_volume:
rabbitmq_volume:
redis_volume:
x-defaults-php: &defaults-php
image: registry.dot-dot.ru/dot-dot:${DOTDOT_TAG}
restart: unless-stopped
volumes:
- ./configs/php/.env:/application/.env
- ./configs/php/.env.local:/application/.env.local
- ./configs/php/zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf
- php_var_volume:/application/var
- ./configs/php/firebase-fcm-dotdot-key.json:/application/config/firebase-fcm-dotdot-key.json
depends_on:
- db
- rabbitmq
networks:
- dd
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
mysqld-exporter:
image: prom/mysqld-exporter:v0.15.1
restart: unless-stopped
command: --config.my-cnf=/.my.cnf
volumes:
- ./.my.cnf:/.my.cnf
depends_on:
- db
networks:
- dd
backend:
<<: *defaults-php
# command: "php-fpm && nginx -g 'daemon off;'"
php:
# TODO: Денис должен переделать и добавить
command: ./bin/console app:auction:reload
<<: *defaults-php
carrier-offers:
<<: *defaults-php
command: ./bin/console messenger:consume CarrierOffers
auction:
<<: *defaults-php
command: sh -c 'while true; do echo run; ./bin/console app:auction:process; sleep 60;done'
lms:
image: registry.dot-dot.ru/lms:${LMS_TAG}
restart: unless-stopped
command: npm run start
volumes:
- ./configs/lms/.env:/app/.env
env_file:
- ./configs/lms/.env
networks:
- dd
static:
image: registry.dot-dot.ru/dot-dot-static:${DOTDOT_TAG}
restart: unless-stopped
networks:
- dd
help-platform:
image: registry.dot-dot.ru/help-platform:${HELP_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:/application/nuxt/.env
- ./configs/nuxt/entrypoint.sh:/entrypoint.sh
env_file:
- ./configs/nuxt/.env
networks:
- dd
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
ports:
- 80:80
- 443:443
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx${NETWORK}.rule=Host(`${NETWORK}.dot-dot.ru`)"
- "traefik.http.services.nginx${NETWORK}.loadbalancer.server.port=80"
depends_on:
- nuxt
- php
- static
networks:
ingress:
dd:
aliases:
- nginx
node-exporter:
image: prom/node-exporter:v1.7.0
container_name: node-exporter
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
networks:
- dd
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.47.2
restart: unless-stopped
container_name: cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk:/dev/disk:ro
devices:
- /dev/kmsg:/dev/kmsg
networks:
- dd
bookstack:
image: ghcr.io/linuxserver/bookstack:24.02.3
restart: unless-stopped
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- APP_URL="https://wiki.dot-dot.ru"
- DB_HOST=db
- DB_USER=root
- DB_PASS=${MYSQL_ROOT_PASSWORD}
- DB_DATABASE=bookstack
- MAIL_DRIVER=${MAIL_DRIVER}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- MAIL_FROM=${MAIL_FROM}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
volumes:
- ./configs/bookstack:/config #- bookstack_data_volume:
networks:
- dd
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
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: {}