competition-vd/docker-compose.yml

141 lines
2.7 KiB
YAML
Executable File

version: '3.8'
services:
vulnerability_detector:
build:
context: .
dockerfile: Dockerfile
image: vulnerability_detector:latest
container_name: vul_detector
volumes:
- ./data:/app/data
- ./outputs:/app/outputs
environment:
- NVIDIA_VISIBLE_DEVICES=all
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
- redis
- postgres
networks:
- vul_net
data_preprocessor:
image: vulnerability_detector:latest
command: python scripts/run_preprocessing.py
volumes:
- ./data:/app/data
depends_on:
- vulnerability_detector
networks:
- vul_net
model_trainer:
image: vulnerability_detector:latest
command: python scripts/run_training.py
volumes:
- ./data:/app/data
- ./outputs:/app/outputs
environment:
- NVIDIA_VISIBLE_DEVICES=all
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
- data_preprocessor
networks:
- vul_net
evaluator:
image: vulnerability_detector:latest
command: python scripts/run_evaluation.py
volumes:
- ./data:/app/data
- ./outputs:/app/outputs
depends_on:
- model_trainer
networks:
- vul_net
dashboard:
build:
context: .
dockerfile: Dockerfile.dashboard
ports:
- "8050:8050"
volumes:
- ./outputs:/app/outputs
depends_on:
- evaluator
networks:
- vul_net
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- vul_net
postgres:
image: postgres:13
environment:
POSTGRES_DB: vuldb
POSTGRES_USER: vuluser
POSTGRES_PASSWORD: vulpass
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- vul_net
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672"
networks:
- vul_net
celery_worker:
build:
context: .
dockerfile: Dockerfile.celery
command: celery -A tasks worker --loglevel=info
volumes:
- ./data:/app/data
- ./outputs:/app/outputs
depends_on:
- rabbitmq
- redis
networks:
- vul_net
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- dashboard
networks:
- vul_net
volumes:
redis_data:
postgres_data:
networks:
vul_net:
driver: bridge