config_ml/docker-compose.yml

169 lines
4.7 KiB
YAML

volumes:
letsencrypt:
nginx_log_volume:
mysql_data_volume:
mysql_backup_volume:
mltorgtrans_abinbevefes_log:
networks:
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:
ingress:
mltorgtrans:
user: 1000:1000
image: registry.dot-dot.ru/mltorgtrans:${MLTORGTRANS_TAG}
restart: unless-stopped
volumes:
- ./configs/mltorgtrans/.env:/application/.env
env_file:
- ./configs/mltorgtrans/.env
depends_on:
mltorgtrans_db_migration:
condition: service_completed_successfully
networks:
ingress:
mltorgtrans_db_migration:
image: registry.dot-dot.ru/mltorgtrans:${MLTORGTRANS_TAG}
command: /application/artisan migrate --force --no-interaction
volumes:
- ./configs/mltorgtrans/.env:/application/.env
env_file:
- ./configs/mltorgtrans/.env
networks:
ingress: {}
mltorgtrans_abinbevefes:
user: 1000:1000
image: registry.dot-dot.ru/mltorgtrans_abinbevefes:${mltorgtrans_abinbevefes}
restart: unless-stopped
volumes:
- ./configs/mltorgtrans_abinbevefes/.env:/application/.env
- mltorgtrans_abinbevefes_log:/application/storage/logs
env_file:
- ./configs/mltorgtrans_abinbevefes/.env
depends_on:
mltorgtrans_abinbevefes_db_migration:
condition: service_completed_successfully
networks:
ingress:
mltorgtrans_abinbevefes_db_migration:
image: registry.dot-dot.ru/mltorgtrans_abinbevefes:${mltorgtrans_abinbevefes}
command: /application/artisan migrate --force --no-interaction
volumes:
- ./configs/mltorgtrans_abinbevefes/.env:/application/.env
env_file:
- ./configs/mltorgtrans_abinbevefes/.env
networks:
ingress: {}
# mlatrucks:
# image: registry.dot-dot.ru/mlatrucks:${mlatrucks_tag}
# command: php artisan app:run-collector pPHx1yZOaiOsUb0zAIaoiY0B4SLOcyS8gBYaAxvI9RVSAR6u
# restart: unless-stopped
# volumes:
# - ./configs/mlatrucks/.env:/application/.env
# env_file:
# - ./configs/mlatrucks/.env
# depends_on:
# mlatrucks_db_migration:
# condition: service_completed_successfully
# networks:
# ingress:
# mlatrucks_db_migration:
# image: registry.dot-dot.ru/mlatrucks:${mlatrucks_tag}
# command: /application/artisan migrate --force --no-interaction
# volumes:
# - ./configs/mlatrucks/.env:/application/.env
# env_file:
# - ./configs/mlatrucks/.env
# networks:
# ingress: {}
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
- nginx_log_volume:/var/log/nginx
ports:
- 80:80
- 443:443
# depends_on:
networks:
- ingress
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)($$|/)'
labels:
- "traefik.enable=true"
- "traefik.http.routers.node_exporter.rule=Host(`ml.dot-dot.ru`)"
- "traefik.http.routers.node_exporter.rule=Path(`/metrics`)"
- "traefik.http.routers.node_exporter.service=node_exporter"
- "traefik.http.routers.node_exporter.entrypoints=https"
- "traefik.http.services.node_exporter.loadbalancer.server.port=9100"
networks:
- ingress
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.49.1
restart: unless-stopped
container_name: cadvisor
privileged: true
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
labels:
- "traefik.enable=true"
- "traefik.http.routers.cadvisor.rule=Host(`ml.dot-dot.ru`)"
- "traefik.http.routers.cadvisor.rule=Path(`/cadvisor`)"
- "traefik.http.routers.cadvisor.service=cadvisor"
- "traefik.http.routers.cadvisor.entrypoints=https"
- "traefik.http.services.cadvisor.loadbalancer.server.port=8080"
networks:
- ingress